
在網頁瀏覽器 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-8
cfg 檔案中 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 來顯示字符,並確保它知道螢幕上多字節字符的寬度,它在隱藏視窗中繪製文本,並對單元格進行計數。