【发布时间】:2018-07-26 22:24:25
【问题描述】:
我在 OS X 10.11 上使用 Lynx。但是,它不会为非 ASCII 字符打印 UTF-8,而是打印它们的 ASCII 表示,或 ef bf bd“替换”字符 (?)。
我一直在研究this guide寻求帮助。
locale 命令的输出:
locale
LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL=
当我使用 Lynx 运行时
lynx http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-demo.txt
显示如下:
根据文章中的帖子,Lynx 应该正确打印 UTF-8。
lynx -dump ... 打印相同。
(运行 export LC_ALL="en_US.UTF-8" 也无济于事。)
奇怪的是,如果我使用-mime_header 参数运行,例如:
lynx -mime_header http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-demo.txt
它可以正确打印字符。 (虽然,作为转储而不是在浏览器环境中打开):
编辑:
忘了说,
-assume_charset=utf8 和 -assume_unrec_charset=utf8
也不要帮忙。
编辑:
我可以通过在 lynx.cfg 中硬设置 CHARACTER_SET 来获得我想要的输出。尽管这似乎是一种解决方法,但正如文档中所述:
# ... The 'o'ptions menu setting will be stored in the user's RC
# file whenever those settings are saved, and thereafter will be used as the
# default. ...
但是,该设置仅在其设置的会话中持续存在。这对我不起作用,因为我主要在脚本中使用 lynx -dump。但由于我几乎只使用 UTF-8,我想我现在可以忍受硬设置。
【问题讨论】:
-
这不是编程问题。我建议删除它并在Unix & Linux 重新发布。 (FWIW,它适用于我在 Ubuntu 上。)