さて、15年のLinuxの後、ついにMacBook Airを手に入れました。そして、私がそれを手に入れる前に私の大きな懸念はUTF-8サポートでした。なぜなら、WindowsまたはMacクライアントからファイルが送られてきても、常にエンコーディングの問題があるからです完璧なutf-8エンコードデータを生成します。
そして今、OS Xの2日目(今日)に、欲求不満で髪を引き裂いています。どうして?
Nanoを開いてÅÄÖなどのスウェーデン語の文字を入力すると、行末に空白文字が表示されます(各文字のもう一方のバイトです)
pythonを開いてスウェーデン語の文字を使用しようとすると、何も出力されません
SSHを介してUbuntuサーバーに接続する場合、bashでåäöと入力することはできません。VIM(まだSSHを介して)で動作します。削除は、ターミナルの設定でctrl + H "を送信します。バックスペースはnanoでは機能し始めますが、VIMでは機能しなくなります。
私は他のすべてのエンコーディングのチェックを外し、ターミナル設定でUTF-8をオフにしましたが、どちらも機能していないようです。
すべての非米国人が同じ問題を抱えているに違いないと思うので、私はそれらを修正する必要がありますか? UTF-8を完全にサポートしたいだけです...: '(
私にこれを助けました:ターミナルのローカルシェルのロケールをチェックしました
$ locale
LANG="cs_CZ.UTF-8"
LC_COLLATE="cs_CZ.UTF-8"
次に、ssh経由で使用しているリモートホストに接続し、/ etc/profileファイルをルートとして編集しました-最後に次の行を追加しました:
export LANG=cs_CZ.UTF-8
次の接続後、bash、ls、nanoで正常に動作します。
Terminal -> Preferences -> Advanced (Tab)
に移動してInternational
に移動し、Unicode (UTF-8)
を_Character Encoding
_として選択します。
_Set locale environment variables on startup
_にチェックマークを付けます。
残念ながら、Preferencesダイアログは常に非常に役立つわけではありませんが、微調整することですべてが機能するはずです。
ターミナルでスウェーデン語の文字を入力できるようにするには、次の行を〜/ .inputrcに追加します(ほとんどの場合、このファイルを作成する必要があります)。
set input-meta on
set output-meta on
set convert-meta off
これはutf8とbash
、nano
および他の多くのプログラムの他のコーディングの両方で動作するはずです。 tmux
などの一部のプログラムも、locale
に依存しています。次に、たとえばexport LC_ALL=en_US.UTF-8
あなたの~/.profile
ファイルは役立つはずですが、いくつかの(主にあいまいな)プログラムには標準ロケールが必要なので、プログラムの実行やコンパイルに問題がある場合は、LC_ALL=C
。
参考になる参考文献:
以下は、OS X Mavericks(10.9)で必要なことの概要です。これはすべてで要約されます
http://hints.macworld.com/article.php?story=20060825071728278
「ターミナル」->「設定」->「設定」->「詳細設定」に移動します。
Internationalで、文字エンコードがnicode(UTF-8)に設定されていることを確認します。
また、これは重要です:Emulationで、Control-Vで非ASCII入力をエスケープがオフになっていることを確認してください(つまり、not set)です。
これら2つの設定は、ターミナルの問題を修正します。
ロケールが.UTF-8
で終わるものに設定されていることを確認してください。 locale
と入力して、LC_CTYPE
行を確認します。 en_US.UTF-8
(米国英語以外のロケールを使用している場合、ドットの前のものが変わる可能性があります)のようなことを言わない場合、Bashで.profile
または.bashrc
ホームディレクトリに、次のような行を追加します。
export LC_CTYPE=en_US.UTF-8
これにより、一般的なコマンドラインプログラムの問題が修正されます。
ホームディレクトリの.inputrc
に次の行を追加します(必要に応じて作成します)。
set meta-flag on
set input-meta on
set output-meta on
set convert-meta off
これにより、Bashは8ビットクリーンになり、UTF-8文字を混乱させることなく入出力できます。
上記の2および3で行ったすべての設定に注意を払うには、Bashを再起動する必要があります(たとえば、ターミナルウィンドウを閉じて再度開く)。
短い汎用性のある回答(他の言語、リトアニア語やロシア語にも対応)
nano .profile
export LC_ALL=en_US.UTF-8
を追加これは、私にとっては小さな国でも珍しい国民的特徴を解決しました。変更を有効にするには、ターミナルを閉じて開く必要があります。
Linuxの動作が好きな場合(mcでAlt +。やAlt +などのAltショートカットを多数使用する場合)、MacスタイルのOptionキー機能を無効にする必要があります:Terminal-> Preferences-> Profiles-> Keyboard and check box:Use Option as Meta key
私の端末はåäöを出力するのではなく、単にばかげているだけです。私はこの設定を見つけました(そして設定しました):
下 Terminal -> Preferences... -> Profiles -> Advanced
。
私の問題を解決したようです。
nano
を希望どおりに動作させるには、次を試してください。
export LANG="UTF-8"
または、nano
を介してMacPorts
の新しいバージョンを取得します。
# cf. http://www.macports.org/install.php
port info nano
port variants nano
Sudo port install nano +utf8 +color +no_wrap
SshとUTF-8の問題に関してはコメントアウトSendEnv LANG LC_*
in /etc/ssh_config
。
nano --version
を使用して、nanoが実際にUTF-8サポートで構築されているかどうかを確認します。 Cygwinにあります:
nano --version
GNU nano version 2.2.5 (compiled 21:04:20, Nov 3 2010)
(C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
2008, 2009 Free Software Foundation, Inc.
Email: [email protected] Web: http://www.nano-editor.org/
Compiled options: --enable-color --enable-extra --enable-multibuffer
--enable-nanorc --enable-utf8
最後のビットに注意してください。
Nanoは端末アプリケーションです。ナノの問題というよりも、最終的な問題だと思います。
OS Xでも同様の問題が発生しました(ターミナルで中国語の文字を入力および表示できません)。
実際の効果が環境変数LANGの変更であるOS X UIを使用して、システム設定を調整してみました。
最後に、問題を修正するために〜/ .bashrcにいくつかのものを追加します。
# I'm Chinese and I prefer English manual
export LC_COLLATE="zh_CN.UTF-8"
export LC_CTYPE="zh_CN.UTF-8"
export LC_MESSAGES="en_US.UTF-8"
export LC_MONETARY="zh_CN.UTF-8"
export LC_NUMERIC="zh_CN.UTF-8"
export LC_TIME="zh_CN.UTF-8"
ところで、他のすべてのLC_ *設定を上書きするLC_ALLを設定しないでください。
試してみる
.zshrc
または.bashrc
に設定する: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"
私の場合、uxterm
の代わりにxterm
コマンドを使用するだけで問題は解決しました。 /opt/X11/bin/uxterm
Appleが提供するXQuartzパッケージをインストールする。