我有一些像这样的html:
┌────────
────────┐<br>
│testtesttesttest│<br>
└────────
────────┘<br>
正如我所期望的,它在 Chrome 中显示为一个实心框(也无法让它在 SE 中正确显示!):
┌──────────────┐ │测试测试测试测试│ └──────────────┘
我希望文本浏览器也能做到这一点,但在 Lynx 上我得到
+----------------+ |测试测试测试测试| +----------------+
在 w3m 上它
?????????????????? ?测试测试测试? ??????????????????
最后在 links2 上我得到了
+----------------+ │|testtesttesttest| +----------------+
有没有机会配置一个文本浏览器来像图形浏览器一样用漂亮的实线来显示这些东西?我使用 PuTTY 设置为 UTF-8,并启用“使用 unicode 线条绘制”,连接到 Ubuntu 12.04。
答案1
电子链接
如果我理解你的问题,那么我相信elinks
支持此功能。使用UTF-8-demo.txt那@michas 在他的回答中提供了elinks
,这是查看该页面的屏幕截图。
例子
elinks
像这样调用:
$ elinks http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-demo.txt
这是终端运行的屏幕截图elinks
:
w3m
作为替代方案,elinks
您也可以使用w3m
.
例子
您可以w3m
像这样调用:
$ w3m http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-demo.txt
这是终端运行的屏幕截图w3m
:
山猫
Lynx 也支持此功能。您可以像这样调用它:
$ 山猫http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-demo.txt
这是终端运行的屏幕截图lynx
:
语言环境
我所知道的所有基于终端的浏览器都可以很好地渲染这些字符。我的语言环境设置如下:
$ locale
LANG=en_US.utf8
LC_CTYPE="en_US.utf8"
LC_NUMERIC="en_US.utf8"
LC_TIME="en_US.utf8"
LC_COLLATE="en_US.utf8"
LC_MONETARY="en_US.utf8"
LC_MESSAGES="en_US.utf8"
LC_PAPER="en_US.utf8"
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT="en_US.utf8"
LC_IDENTIFICATION="en_US.utf8"
LC_ALL=
这可能是问题所在。
参考
答案2
要手动测试终端的功能,您可以使用类似的文件UTF-8-demo.txt。
您的终端能够显示您的盒子吗?
如果可以,您的浏览器是否知道您的终端可以这样做?
否则,浏览器将采用安全选项并使用 ASCII 字符模拟框。
locale
和的输出是什么echo $TERM
? - 您的浏览器很可能会评估这些,以确定您的终端的功能。
答案3
在这里得到一些提示后,似乎答案是 lynx、elinks 和 w3m,如果正确配置了locate,它们都可以工作。
locale
显示一切都设置为“POSIX”。
export LC_ALL="en_US.UTF-8"
解决了问题。将其添加到 ~/.bashrc 以便更改持续存在。
谢谢各位!
答案4
这是一个字符集问题。如果你的终端处于 utf8 模式并且 lynx 知道它,它就可以工作。 30 秒前已验证。