为什么 bash 不能显示像 æ、ø 和 å 这样的符号?

为什么 bash 不能显示像 æ、ø 和 å 这样的符号?

我有一个名为 æøå.js 的文件(仅作为示例),当我ls在存储它的目录中运行时,我得到了

root@chu:~/projects/someproject/server# ls src
a.js b.js ??????.js

因此似乎无法显示此类符号。PuTTY 设置为 UTF-8,我的env看起来像这样

TERM=xterm
外壳=/bin/bash
用户=root
LANG=en_GB.UTF-8
低压侧电压=1
主页=/root
语言=en_US:en
LS_OPTIONS=--颜色=自动
PYTHONPATH=:/root/pymodules
LOGNAME=root
_=/usr/bin/env

(我从输出中删除了一些内容,因为它们无论如何都不可能相关)

但问题是,当我用打开文件vim时,我可以毫无问题地输入并看到所有这些符号。所以问题显然只是在 shell/bash 中。我可以提供任何设置来允许 bash 显示这些符号吗?有人能解释一下为什么现在使用 UTF-8 不起作用吗?


编辑:这是tree显示 æøå.js 的方式

|-- 源文件
||-- a.js
||-- b.js
|`--\303\246\303\270\303\245.js

答案1

正如我已经解释过的,两次,在我们的先前的讨论,问题在于您的区域设置配置指向不存在的区域设置。

您的环境(包括 $LANG)是可以的;但是,en_GB.UTF-8必须生成语言环境。

在大多数发行版(包括 Debian)上:

  1. /etc/locale.gen在文本编辑器中打开。
  2. en_GB.UTF-8通过删除前导 来取消注释该行#
  3. 以 root 身份运行locale-gen

在 Debian 上:

  1. 以 root 身份运行dpkg-reconfigure locales
  2. 向下滚动到“ en_GB.UTF-8”条目,用 标记它Space
  3. OK使用Tab,选择Enter

此外,根据记录,ls这是一个单独的程序;它是不是bash 的一部分。

相关内容