在网络浏览器 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 日)。安装 lynx 后,我测试了该页面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 来显示字符,并确保它知道屏幕上多字节字符的宽度,它在隐藏窗口中绘制文本,并对单元格进行计数。