控制台中的 Unicode 问题

控制台中的 Unicode 问题

我在 konsole 中遇到了文本编码问题(我也尝试了 xterm,结果是一样的)(Kubuntu 13.04,KDE)。以下是示例输出:

oleg@PrizoffN:~$ gg
gg: \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u0430

(这里gg只是随机字符,所以答案应该是command not supported或类似这样)

oleg@PrizoffN:~$ sudo apt-get install krusader
[sudo] password for oleg: 
?????? ??????? ???????... ??????
?????????? ?????? ????????????       
?????? ?????????? ? ?????????... ??????
??? ??????????? ????? ????? ?????? krusader.
????????? 0, ??????????? 0 ????? ???????, ??? ???????? ???????? 0 ???????, ? 0 ??????? ?? ?????????.

oleg@PrizoffN:~$ uname -a
Linux PrizoffN 3.8.0-19-generic #29-Ubuntu SMP Wed Apr 17 18:16:28 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

不确定为什么会这样...这里可以做什么?

同时,在纯控制台模式下一切都运行良好(如果我按下 CTRL+ALT+F1)

更新:这是有用的数据:

oleg@PrizoffN:~$ locale
LANG=en_US.ISO-8859-1
LANGUAGE=en_US:ru:en
LC_CTYPE="en_US.ISO-8859-1"
LC_NUMERIC="en_US.ISO-8859-1"
LC_TIME="en_US.ISO-8859-1"
LC_COLLATE="en_US.ISO-8859-1"
LC_MONETARY="en_US.ISO-8859-1"
LC_MESSAGES="en_US.ISO-8859-1"
LC_PAPER="en_US.ISO-8859-1"
LC_NAME="en_US.ISO-8859-1"
LC_ADDRESS="en_US.ISO-8859-1"
LC_TELEPHONE="en_US.ISO-8859-1"
LC_MEASUREMENT="en_US.ISO-8859-1"
LC_IDENTIFICATION="en_US.ISO-8859-1"
LC_ALL=

更新 2

我可以通过执行将语言环境恢复到正常状态

LANG=en_US.utf8

但这只是暂时的结果。在重新启动 konsole 时,语言环境将恢复为其ISO-8859-1值。我如何才能永久保存它?

我还找到了这个文件:

oleg@PrizoffN:~$ cat .kde/env/setlocale.sh 
export LANG=en_US.utf8
export LANGUAGE=en_US:ru:en

其中 LANG 最初设置为ISO-8859-1。我将其更改为 utf8 ,但没有任何效果。

更新 3

重启后,语言环境恢复正常。所以,没有更多问题了。

答案1

我正在使用全新安装的 Kubuntu 13.04。

安装俄语区域设置并重新启动后,我遇到了同样的问题。这确实是由于 中的区域设置名称不匹配造成的.kde/env/setlocale.sh

因此重复解决方法:

LANG=en_US.ISO-8859-1 =>>>
export LANG=en_US.utf8

然后重新启动,问题完全解决!

有趣的是,我首先意识到问题不在于konsole(这个症状很明显),而是在用 Dolphin 浏览数据时发现,所有用俄语编码的文件都以胡言乱语命名。

相关内容