看来是这样。我读IUTF8,但文档只说它允许您在进行行编辑时将输入处理为 UTF-8。
但是输出呢?如果您使用 GUI 终端,它通常允许您更改编码以在 pty 的输出缓冲区中呈现字节,但是内核实现的 tty 又如何呢?
Linux 是否总是使用 UTF-8 渲染 tty 输出缓冲区中的字节?
答案1
“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年,怀疑转换为网页格式丢失了一些文本。 另一个网站提供了更完整的表示(尽管该网站也存在上述问题这里)。
如果你真的想读手册页,您的本地计算机可能比任何一个都做得更好......
您可以使用以结尾的序列关闭/打开 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