回答:
次のロケール関連の設定を/etc/bashrc
(すべてのユーザー用bash
)に配置します。
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_COLLATE=C
export LC_CTYPE=en_US.UTF-8
次に実行します:
source /etc/bashrc
またはログオフしてログオンします。
lang.sh
。
MacOSでも同じエラーが発生していました。Linuxボックスにsshすると、UTF-8
ロケールのセットアップを拒否します。locale
MacOSターミナルとLinuxボックスでコマンドを実行すると、ロケール設定の違いを確認できます。
このエラーを修正するには、ターミナルを開きます->設定->プロファイル->Set locale environment variables on startup
Macで詳細設定および設定解除します。
locale
Macで実行するとき。この変更が以前の設定で設定されLC_CTYPE="C"
たことを確認できLC_CTYPE="UTF-8"
ます。
この効果を得るにはターミナルを閉じて、Linuxボックスにログインして実行する必要がありますyum update
。
それが役に立てば幸い :)
SSHを使用してデスクトップマシンからこのホストに接続する場合、一般的/etc/ssh/sshd_config
には
AcceptEnv LANG LC_*
これにより、クライアントはこれらの環境変数の値を新しいセッションに伝播できます。ただし、ロケールがデスクトップマシンで最初に正しく設定されていない場合、設定しているサーバーのSSHセッション内でロケール変数が空に設定されます。
修正するには:
たとえば、Windows 10 Ubuntu Shellウィンドウで、最初に行います(注:ロケールが「en_US.UTF-8」でない場合は、以下のすべてのエントリを変更してロケールに一致させます)。
sudo locale-gen en_US.UTF-8
sudo dpkg-reconfigure locales
次に、Ubuntuシェルウィンドウを閉じてから再度開き、設定しようとしているサーバーにSSHで接続して、すべてが正常かどうかを確認します...
そうでない場合は、サーバーにSSHで接続して以下を実行します。
vi /etc/profile.d/custom.lang.sh
次に、ヒットI
して「挿入」モードに入ります。次に、以下のエントリを貼り付けます。それからZZ
、保存して終了するには:
## US English ##
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
export LC_CTYPE=en_US.UTF-8
次に、次を実行します。
source /etc/profile.d/lang.sh
source /etc/profile.d/custom.lang.sh
次に:
reboot
ロケール変数に関する不満がすべてなくなるかどうかを確認してください!
/etc/profile.d/lang.sh
なく、入るべき/etc/bashrc
です。