是否有任何基于文本的网络浏览器支持unicode方框绘制字符?

是否有任何基于文本的网络浏览器支持unicode方框绘制字符?

我有一些像这样的html:

  &#x250c&#x2500&#x2500&#x2500&#x2500&#x2500&#x2500&#x2500&#x2500
  &#x2500&#x2500&#x2500&#x2500&#x2500&#x2500&#x2500&#x2500&#x2510<br>
  &#x2502testtesttesttest&#x2502<br>
  &#x2514&#x2500&#x2500&#x2500&#x2500&#x2500&#x2500&#x2500&#x2500
  &#x2500&#x2500&#x2500&#x2500&#x2500&#x2500&#x2500&#x2500&#x2518<br>

正如我所期望的,它在 Chrome 中显示为一个实心框(也无法让它在 SE 中正确显示!):

    ┌──────────────┐
    │测试测试测试测试│
    └──────────────┘

我希望文本浏览器也能做到这一点,但在 Lynx 上我得到

    +----------------+
    |测试测试测试测试|
    +----------------+

在 w3m 上它

    ??????????????????
    ?测试测试测试?
    ??????????????????

最后在 links2 上我得到了

   +----------------+
   &#x2502|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

   电子链接的SS

w3m

作为替代方案,elinks您也可以使用w3m.

例子

您可以w3m像这样调用:

$ w3m http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-demo.txt

这是终端运行的屏幕截图w3m

   w3m的SS

山猫

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 秒前已验证。

相关内容