终端西里尔字母问题

终端西里尔字母问题

xclock当我在终端中运行该命令时,总是收到以下警告:

Warning: Missing charsets in String to FontSet conversion

我编辑了我的 ~/.bashrc文件并在末尾添加了以下行:

export LC_ALL=C

之后我的控制台出现了奇怪的行为——我可以删除描述当前用户及其所在路径的初始字符。

如果我使用西里尔文写东西,就会发生这种情况。当我尝试插入第一个西里尔字母时,我之前写的所有内容都被符号替换了。然后我可以删除控制台中的首字母,继续按下backspace按钮

在此处输入图片描述

为什么该变量会LC_ALL影响我的终端,以及如何在xclock不损害终端的情况下解决警告问题?

答案1

一切果然如用户@egmont所说的那样。

当变量LC_ALL定义为C它将所有应用程序的编码设置为 ASCII 时(一般来说,唯一重要的是将编码更改为另一种不支持西里尔字母的编码)

最初LC_ALL尚未定义。如果您遇到这种情况,可以输入以下内容进行检查:

echo $LC_ALL

如果得到一个空行,则变量为空。

xclock据我所知,出现警告的原因是 - 由于缺乏明确指定的编码

如果你像大多数互联网提示中所述那样设置LC_ALLC,则明确指定了编码。并且此编码不是UTF-8

为了解决问题,您必须明确指定支持西里尔字母的编码。您可以通过在文件末尾添加下一行来实现~/.bashrc

export LC_ALL=C.UTF-8

相关内容