我有一个全新安装的 Ubuntu Server 16.04,现在正在测试它如何处理 unicode 字符:
- 我有一个包含unicode字符的文件名:
testā.txt
。如果我使用制表符选择它,即$ rm tes[tab]
,则命令会选择正确的文件名。 - 如果我这样做
$ ls
,我会test??.txt
在文件列表中看到 - 如果我使用 将unicode字符添加到文件内容中
$ echo āāā > test.txt
,然后执行$ cat test.txt
,我会得到正确的输出。 - 但是,如果我在 nano 编辑器中打开该文件,其内容如下所示:
^ ^ ^
。 - 十六进制转储
$ xxd test.txt
显示unicode字符正确存储在文件中:c481 c481 c481 0a
我使用的终端程序 (Guake) 从未遇到过 unicode 字符问题。在典型的本地终端会话中,不存在上述任何问题。
呼叫env | sort | grep -E '^(LANG(UAGE)?|LC_\w*)='
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_ADDRESS=lv_LV.UTF-8
LC_IDENTIFICATION=lv_LV.UTF-8
LC_MEASUREMENT=lv_LV.UTF-8
LC_MONETARY=lv_LV.UTF-8
LC_NAME=lv_LV.UTF-8
LC_NUMERIC=lv_LV.UTF-8
LC_PAPER=lv_LV.UTF-8
LC_TELEPHONE=lv_LV.UTF-8
LC_TIME=lv_LV.UTF-8
这个问题可以通过服务器区域设置来解决吗?或者在启动 ssh 会话时我应该使用一些参数?