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

相关内容