GAD*_*D3R 17

检查您是否locales安装了软件包

dpkg -l locales
Run Code Online (Sandbox Code Playgroud)

如果没有,请安装它

apt-get install locales
Run Code Online (Sandbox Code Playgroud)

以 root 身份输入

dpkg-reconfigure locales
Run Code Online (Sandbox Code Playgroud)

您可以使用向上/向下箭头键导航该列表,例如选择 en_US-UTF-8

.bashrc通过添加以下行来编辑您的:

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)

运行locale命令,输出应该类似于:

LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
Run Code Online (Sandbox Code Playgroud)

  • 我确实安装了该软件包 - 我认为它默认随 Debian Wheezy 一起提供。只是控制台未处于 UTF-8 模式。 (2认同)

Tho*_*key 8

当然(它受字形数量限制,但您的语言环境似乎正在使用 UTF-8 编码)。

我用它来测试:

#!/bin/sh
# send character-string to enable UTF-8 mode
if test ".$1" = ".off" ; then
    printf '\033%%@'
else
    printf '\033%%G'
fi
Run Code Online (Sandbox Code Playgroud)

并且(称为“utf8”),“utf8 on”打开编码。

使用 with 给出的示例pstree,这是运行脚本的示例(之前,与问题中的输出类型相同):

“utf8 on”后的截图

正如评论中所指出的,有一个脚本unicode_start可以做更多,但是解决所提出的问题所需的只是用作示例的小脚本。

解决不同的评论:至少在我的系统上(以及问题中显示的屏幕截图),使用的所有字符pstree都以默认使用的 512 字形字体提供,用于 Linux 控制台中的 Unicode 支持。

进一步阅读:

  • 提问者似乎正在运行 Debian 7。 [它的 `kbd` 包](https://packages.qa.debian.org/k/kbd.html) 中有 `unicode_start`,它的作用比你的脚本稍微多一点。 (3认同)

小智 7

设置CHARMAP="UTF-8"/etc/default/console-setup.

systemctl daemon-reload && systemctl restart console-setup.service之后跑。