Lynx 中的 UTF-8 輸入

Lynx 中的 UTF-8 輸入

在網頁瀏覽器 Lynx 中,我已成功透過設定正確顯示非 ASCII 字符

CHARACTER_SET:UNICODE (UTF-8)

/etc/lynx-cur/lynx.cfg。我也試過了ASSUME_CHARSET,沒什麼差別。但是,在輸入欄位中鍵入非 ASCII 字元無法正常運作。例如,當我複製到表單欄位時,它會正確顯示。然而,當我按下空白鍵時,插入點會移動到行首。如果我使用 執行此操作Äpfel,則貼上時它也會正確顯示。寫入後, ä 顯示正確,但當我輸入其餘字母時,插入點首先移動到最左側,然後不顯示任何字元。

我需要什麼設定?我的語言環境全部是 UTF-8。我在 Debian 8.7 上使用 Lynx 2.8.9dev.1。所有其他應用程式(包括 Emacs)都可以完美地處理非 ASCII 字元。

答案1

我在 Manjaro 18 上有 lynx 版本 2.8.9rel.1(2018 年 7 月 8 日)。https://zh.wikipedia.org/wiki/Lynx並注意到中文字元顯示不正確。然後我添加了這一行

 CHARACTER_SET:utf-8

到文件/etc/lynx.cfg

請注意,該值是utf-8cfg 檔案中 MIME 名稱列中列出的值,而不是UNICODE (UTF-8)來自「'O'ptions Menu 的字串」列。之後,上述頁面的漢字就可以正確顯示了。按照建議搜尋“äpfel”或“狐狸”聊天室也工作得很好。

我不知道 Thomas Dickey 提到的錯誤是否相關;在 cfg 檔案中使用正確的值解決了我的問題。

答案2

純屬巧合,bug已修復最近

2017-04-29 (2.8.9dev.13)
* amend fix for Debian #841155, adding check for special case where the
  expected number of cells is zero (report by Larry Hynes) -TD

2017-04-28 (2.8.9dev.12)
* correct logic in cell2char(), which gave up too early in determining the
  number of cells needed for a multibyte string in the editable text-fields
  (Debian #841155) -TD

Debian #841155去年秋天就報告過,但問題出在最初的版本中cell2char,添加在2.8.7dev.10這裡提到:

* rewrite LYRefreshEdit(), to display multibyte/multicolumn characters properly
  when using wide-character curses -TD

簡而言之,Lynx 使用curses 來顯示字符,並確保它知道螢幕上多字節字符的寬度,它在隱藏視窗中繪製文本,並對單元格進行計數。

相關內容