如何确定终端是否支持 UTF-8

Wha*_*sit 21 terminal utf-8

我正在 CentOs 5 上为 perl 设置 CPAN 模块,问题之一是“您的终端是否支持 UTF-8?” (释义)。我怎么知道?

use*_*474 21

在你的终端中输入:

echo -e '\xe2\x82\xac' 
Run Code Online (Sandbox Code Playgroud)

如果您的终端支持 UTF-8,它将输出欧元符号:

Run Code Online (Sandbox Code Playgroud)


the*_*osx 16

确实,测试的万无一失的方法是下载一个文本文件并将其放入终端中,看看是否一切正常。

或者,如果可以的话,重新编译终端以启用 unicode 选项(假设它有一个)。

$TERM 和 $LANG 是什么样的?

  • 这甚至可以通过显示一些文本并检查其宽度(通过读取前后光标位置)来自动化。我发布了一个[概念证明](http://unix.stackexchange.com/questions/10698/timing-out-in-a-shell-script) 一个提案。 (3认同)

小智 5

最糟糕的方法:运行以下并检查输出。如果终端显示 UTF-8,它将是带有抑扬符的大写 O。

perl -le 'print "\x{c3}\x{94}"'
Run Code Online (Sandbox Code Playgroud)

  • 我知道这已经很晚了,但是 UTF-8 Out 标志使它更好地工作`perl -CO -le 'print "\x{d4}"'` (4认同)
  • 或者没有 -CO 选项,给 Perl 正确的 UTF-8 字节: $ perl -le 'print "\x{c3}\x{94}"' Ô (3认同)