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_ALL
为C
,则明确指定了编码。并且此编码不是UTF-8
为了解决问题,您必须明确指定支持西里尔字母的编码。您可以通过在文件末尾添加下一行来实现~/.bashrc
:
export LC_ALL=C.UTF-8