炸鱼薯条德里克 Asked: 2018-12-12 21:04:33 +0800 CST2018-12-12 21:04:33 +0800 CST 2018-12-12 21:04:33 +0800 CST linux 内核实现的 tty 是否总是使用 UTF-8 呈现数据? 772 似乎是这样。我读过IUTF8,但文档只说它允许您在进行行编辑时将输入作为 UTF-8 处理。 但是输出呢?如果您使用 GUI 终端,它通常允许您更改编码以在 pty 的输出缓冲区中呈现字节,但是内核实现的 tty 呢? Linux 是否总是使用 UTF-8 在 tty 的输出缓冲区中呈现字节? linux tty 1 个回答 Voted Best Answer Thomas Dickey 2018-12-13T02:06:21+08:002018-12-13T02:06:21+08:00 “Linux”本身并没有这样做。应用程序(包括但不限于终端仿真器)这样做或不这样做。 Linux 控制台终端是一个终端仿真器,它可能/可能不解释 UTF-8。有关更多信息,请参阅console_codes(4)手册页。那应该列出用于切换输出字符集的控件,例如, ESC % Start sequence selecting character set ESC % @ Select default (ISO 646 / ISO 8859-1) ESC % G Select UTF-8 ESC % 8 Select UTF-8 (obsolete) 但是看到页面上的最终评论对应于2006年的这个变化,怀疑转换为web格式丢失了一些文本。 另一个站点提供了更完整的表示(尽管该站点也存在此处提到的问题)。 如果您真的想阅读手册页,您的本地计算机可能比任何一个都做得更好...... 您可以分别使用以@或结尾的序列来关闭/打开 UTF-8 模式。G我偶尔使用这个脚本来做到这一点: #!/bin/sh # send character-string to enable UTF-8 mode if test ".$1" = ".off" ; then printf '\033%%@' else printf '\033%%G' fi (并且之前对此发表过评论,有人提醒说有一个脚本可以做到这一点,它比我的脚本要老一点)。
“Linux”本身并没有这样做。应用程序(包括但不限于终端仿真器)这样做或不这样做。
Linux 控制台终端是一个终端仿真器,它可能/可能不解释 UTF-8。有关更多信息,请参阅
console_codes(4)
手册页。那应该列出用于切换输出字符集的控件,例如,但是看到页面上的最终评论对应于2006年的这个变化,怀疑转换为web格式丢失了一些文本。 另一个站点提供了更完整的表示(尽管该站点也存在此处提到的问题)。
如果您真的想阅读手册页,您的本地计算机可能比任何一个都做得更好......
您可以分别使用以
@
或结尾的序列来关闭/打开 UTF-8 模式。G
我偶尔使用这个脚本来做到这一点:(并且之前对此发表过评论,有人提醒说有一个脚本可以做到这一点,它比我的脚本要老一点)。