53

例如,我的终端是这样做的:

$ echo -e "\xE2\x98\xA0"
���

我希望它这样做:

$ echo -e "\xE2\x98\xA0"
☠

为什么?如何让我的终端输出正确的 unicode 符号?

我在 Arch Linux 上使用 Gnome 3 的终端。

显示的输出locale

LANG=C
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=
4

4 回答 4

17

我想到了。我必须确保我设置LANGUAGE="en_US.UTF-8"了 in/etc/rc.confLANG="en_US.UTF-8"in /etc/locale.conf,然后注销并重新登录,它可以工作。我的终端现在可以正确显示 unicode。

于 2012-09-29T06:26:22.933 回答
13

我使用以下命令更新了我的语言环境:

sudo update-locale LANG=en_US.UTF-8 LANGUAGE=en.UTF-8

然后重新启动:

sudo reboot
于 2016-10-04T00:34:48.273 回答
10

如果您无法更改/etc/*文件,您可以手动设置gnome-terminal菜单Terminal| Set Character EncodingUnicode(Utf-8)

于 2014-02-11T10:57:31.057 回答
1

切换到新PC后,我试图解决此问题。我正在使用Windows Terminalwith Ubuntuintilled in WSL2on Win 10

我尝试了此处提供的建议并重新启动;没变。

解决方案

对我来说,解决方法是安装修补的书呆子字体,并将该字体设置为 Windows 终端设置中每个配置文件的默认字体。

在此处输入图像描述

于 2021-08-15T16:32:33.327 回答