web-dev-qa-db-ja.com

CentOSでロケールをUTF-8に変更するにはどうすればよいですか?

localeの出力は次のとおりです。

LANG=zh_CN.GBK
LC_CTYPE="zh_CN.GBK"
LC_NUMERIC="zh_CN.GBK"
LC_TIME="zh_CN.GBK"
LC_COLLATE="zh_CN.GBK"
LC_MONETARY="zh_CN.GBK"
LC_MESSAGES="zh_CN.GBK"
LC_PAPER="zh_CN.GBK"
LC_NAME="zh_CN.GBK"
LC_ADDRESS="zh_CN.GBK"
LC_TELEPHONE="zh_CN.GBK"
LC_MEASUREMENT="zh_CN.GBK"
LC_IDENTIFICATION="zh_CN.GBK"
LC_ALL=

それらをすべてUTF8に変更するにはどうすればよいですか? CentOS 5.5でロケール設定を永続化するにはどうすればよいですか?

8
locale

CentOSでは、system-config-languageコマンドを試してください。それがCentOSの方法です:)また、次の方法で試すことができます。

localedef -c -f UTF-8 -i en_US en_US.UTF-8
export LC_ALL=en_US.UTF-8
12
boris quiroz

Red Hatのようなディストリビューション(Centos、SL)がファイルに付属

/ etc/sysconfig/i18n

これにはデフォルトで含まれています(私の場合)

LANG = "en_GB"

SYSFONT = "latarcyrheb-Sun16"

そして上記のファイルは/etc/profile.d/lang.shによって供給されています

私のケースでは、en_GB.UTF-8をen_GB.iso88591に変更したかったので、/ etc/sysconfig/i18nを次のように追加することが「適切な」方法であることがわかりました。

CHARSET = "iso8895-1"

システムの各アカウントのロケールが完了すると、

me @ wark:〜$ロケール

LANG = en_GB.UTF-8

LC_CTYPE = "en_GB.iso88591"

LC_NUMERIC = "en_GB.iso88591"

LC_TIME = "en_GB.iso88591"

LC_COLLATE = "en_GB.iso88591"

LC_MONETARY = "en_GB.iso88591"

LC_MESSAGES = "en_GB.iso88591"

LC_PAPER = "en_GB.iso88591"

LC_NAME = "en_GB.iso88591"

LC_ADDRESS = "en_GB.iso88591"

LC_TELEPHONE = "en_GB.iso88591"

LC_MEASUREMENT = "en_GB.iso88591"

LC_IDENTIFICATION = "en_GB.iso88591"

LC_ALL = en_GB.iso88591

5
DirtyPole

現在のセッションのことですか、それとも永続的なものですか?

現在のシェルで必要なだけの場合は、LC_ALL変数。例えば:

export LC_ALL=en_US.UTF-8

永続的またはシステム全体で行う場合は、配布ごとに異なります。君は?

4
Eduardo Ivanec

私が思うに、あなたのエンコーディングの後、あなたは本土の中国語です、あなたは最初に中国語のロケールが必要です:

localedef -i zh_CN -c -f UTF-8 zh_CN.UTF-8

次に、ロケールを次のようにエクスポートできます。

export LANG=zh_CN.UTF-8

これをシステム全体に設定する場合:

/etc/locale.confを次のように変更します。

LANG=zh_CN.UTF-8
LC_COLLATE=zh_CN.UTF-8

2行目は、文字列の比較に関するルールです。

または、ユーザーの場合は、〜/ .bashrcまたは〜/ .profileに追加するだけです。

1
Popolon

CentOS 7では、編集することでデフォルトのシステム言語を変更できました

/etc/profile

これは、次の変数が設定される場所です

export LANG="en_GB.utf8"
export LANGUAGE="en_GB.utf8"
export LC_ALL="en_GB.utf8"
0
Coxer