OS X Lionでは、LANGがUTF-8に設定されていません。それを修正するにはどうすればよいですか?


148

OS X Lionでpostgressをセットアップしようとしましたが、それがLOCALE環境変数を正しくセットアップしていません。

これが設定されています:

LANG=
LC_COLLATE="C"
LC_CTYPE="C"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=

UTF-8で何かを期待します。これは、スペイン語でのクリーンなOS X Lionセットアップです。何も動かしません。

UTF-8に設定する方法がわかりません。

端末設定で、UTF-8を確認し、機能しないにもかかわらず、LOCALEをオープンに設定します。


2
それは変です。デフォルトのシェル(bash)とデフォルトのターミナル設定プロファイル(Basic)を使用している場合、デフォルトでターミナルで機能するはずです。エンコーディングを変更したり、「ロケール環境変数を設定」を変更したりすると、それらは新しい端末でのみ有効になり、すでに開いている端末では有効になりません。
クリスページ

私はzshを使用しています(ああ、私のzsh!インストーラーを使用しています)。
mamcx 2011

たぶん。カスタム構成なしでzshを実行して、問題が解消するかどうかを確認してください。使用シェル>新しいコマンドを実行するzsh --no-rcszsh --no-rcs --no-global-rcs、問題を絞り込みます。また、新しいコマンドlocale介してシェルなしでコマンドを実行してみて、それが何を報告するかを確認してください。
クリスページ

@ChrisPageターミナルでこれらの設定を有効にすると、OPとまったく同じ出力が得られました。set locale environment variables適切な環境が表示されるようにするには、電源を切り、端末を再起動してから再び電源を入れなければなりませんでした。
クリス

この質問に対する完全な回答は、Ask Differentにあります。
starfry

回答:


311

OSX LionマシンからRed Hatを実行しているサーバーにログオンすると、まったく同じ問題に気づきました。

~/.profile新しいセッションの開始時にロケール設定を正しくエクスポートするために、ファイルを追加または編集してみてください。

export LC_ALL=en_US.UTF-8  
export LANG=en_US.UTF-8

ファイルに追加されたこれらの2行は、ロケールを設定するのに十分です[ en_US目的のロケールに置き換え、実際にシステムにインストールされていることを事前に確認してください(locale -a)]。

その後、新しいセッションを開始し、次を使用して確認できますlocale

$ locale

以下は出力であるはずです:

LANG="en_US.UTF-8"  
LC_COLLATE="en_US.UTF-8"  
LC_CTYPE="en_US.UTF-8"  
LC_MESSAGES="en_US.UTF-8"  
LC_MONETARY="en_US.UTF-8"  
LC_NUMERIC="en_US.UTF-8"  
LC_TIME="en_US.UTF-8"  
LC_ALL="en_US.UTF-8"  

2
また、iTerm2を使用しているときに最初に問題に気づきました。この回避策は、iTerm2とターミナルの両方で機能するようです。
wormintrude 2011年

1
この問題を解決するために1時間を費やして、この男性を投稿してくれてありがとう。ターミナルとiTerm2の両方で動作することを確認できます。
マリアーノカヴァッロ

7
リンクが無効です。
ヴィンセントシット2014年

11
私は.bash_profile自分のホームフォルダーを使用して.profileいて、.bash_profileが存在していたときに調達されていませんでした。.profile内部で手動でソースする必要がありました.bash_profile
BrunoJCM 2015年

3
すごい、それだけです、ただのメモ、zshを使用したら、私として馬鹿にしないでください...構成があり~/.zshrcます...魅力的なように機能します
Redrick

20

最近、bashシェルを使用するOS X Sierraで同じ問題が発生しました。上記の回答のおかげで、ファイルを編集するだけで済みました

~/.bash_profile 

そしてそれらの行を追加します

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

1
それは本当に役立ちます。私は持っておらずbash_profile、手動で作成しています。そして、に入れずexportbash_profile、ターミナルをリセットするたびに、言語はロールバックします。
ファンヴァンリン

7

これは長い間、ヘッドブレーカーです。OSXだと思います。システム全体で変更すると、完璧に機能します

これをCentos6のLANGに追加すると、Fedoraも私の好みのLANGになります。また、ターミナル設定(OSX)/ etc / profileでエクスポートのロケールをオフにするか、ロケールを設定することもできます。

エクスポートLC_ALL = en_US.UTF-8
エクスポートLANG = en_US.UTF-8


5

あなたが持っている場合のzshはあなたも更新することができますインストールされ~/.zprofile

if [[ -z "$LC_ALL" ]]; then
  export LC_ALL='en_US.UTF-8'
fi

locale上記のようにcmdを使用して出力を確認します

❯ locale                                                                                                                                           
LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL="en_US.UTF-8"

0

MacOS High Sierriaでこの問題が発生しました。

スクリーンショット1

以下のコマンドを使用して、ロケール言語UTF-8形式に設定できます

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

スクリーンショット2

ロケール環境が更新されているかどうかを確認するには、次のコマンドを使用します。

Locale

スクリーンショット3


1
この回答は、承認された回答とどのように異なりますか?
Denis V

2
最初の写真の目的は何ですか?前回と同じじゃないですか。
narengi
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.