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でロケール設定を永続化するにはどうすればよいですか?
CentOSでは、system-config-languageコマンドを試してください。それがCentOSの方法です:)また、次の方法で試すことができます。
localedef -c -f UTF-8 -i en_US en_US.UTF-8
export LC_ALL=en_US.UTF-8
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
現在のセッションのことですか、それとも永続的なものですか?
現在のシェルで必要なだけの場合は、LC_ALL
変数。例えば:
export LC_ALL=en_US.UTF-8
永続的またはシステム全体で行う場合は、配布ごとに異なります。君は?
私が思うに、あなたのエンコーディングの後、あなたは本土の中国語です、あなたは最初に中国語のロケールが必要です:
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に追加するだけです。
CentOS 7では、編集することでデフォルトのシステム言語を変更できました
/etc/profile
これは、次の変数が設定される場所です
export LANG="en_GB.utf8"
export LANGUAGE="en_GB.utf8"
export LC_ALL="en_GB.utf8"