web-dev-qa-db-ja.com

konsoleの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
Prizoff

Kubuntu 13.04の新規インストールを使用しています。

ロシア語ロケールをインストールして再起動した後、同じ問題が発生しました。それは実際、.kde/env/setlocale.shのロケール名の不一致が原因でした。

回避策を繰り返します:

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

その後、再起動すると問題が完全に修正されました!

面白いことに、konsole(この症状はよく見られます)ではなく最初に問題があることを理解しましたが、Dolphinでデータを閲覧し、ロシア語でエンコードされたすべてのファイルがabracadabra-named 。

2
Daniil