有没有办法让Bash(或任何其他Shell)脚本检测当前终端是否支持Unicode字符?

7

如果终端支持Unicode字符,我希望使用Unicode字符,否则使用ASCII字符。在shell脚本中有没有相对简单的方法实现这个功能?

2个回答

3

首先,你可能会将Unicode和特定的编码混淆。假设你知道终端支持Unicode字符--你仍然不知道如何打印它们!

你可能在想像UTF-8这样的东西,它是最流行的Unicode编码。

要获取当前区域设置的编码,请使用:

locale charmap

这是当前语言环境的编码,理论上它可能与终端使用的编码不同,但在这种情况下,用户端出现了故障。

不知道具体的字符集如何才能知道终端支持Unicode?这些信息很有帮助,但你的混淆指责确实令人奇怪。 - iconoclast

-1
在脚本中打印:
:set encoding=utf-8
如果您想让终端支持Unicode,请使用-u8选项创建新终端。
在终端中输入xterm -u8

首先,永远不要建议别人在vimrc之外的地方修改“encoding”选项:只有在vim将任何Unicode字符串读入内存之前才能无错误更改它。其次,“使用-u8选项成为新终端”是特定于终端的:例如,“konsole”不接受这个选项,对于xterm来说,最好做“echo“xterm*utf-8: 4”>> ~/.Xresources”。 - ZyX

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接