Ubuntu Server 16.04 の SSH セッションにおける Unicode/UTF-8 の問題

Ubuntu Server 16.04 の SSH セッションにおける Unicode/UTF-8 の問題

Ubuntu Server 16.04 を新しくインストールし、Unicode 文字の処理方法をテストしています。

  • ファイル名に Unicode 文字が含まれています: testā.txt。これをタブで選択すると (つまり ) $ rm tes[tab]、コマンドに正しいファイル名が選択されます。
  • そうすると$ lstest??.txtファイルリストに
  • を使用してファイルの内容に Unicode 文字を追加し$ echo āāā > test.txt、 を実行すると$ cat test.txt、正しい出力が得られます。
  • ただし、nano エディターでファイルを開くと、内容は次のようになります^ ^ ^
  • 16 進ダンプは、$ xxd test.txtUnicode 文字がファイルに正しく保存されていることを示しています。c481 c481 c481 0a

私が使用しているターミナル プログラム (Guake) では、Unicode 文字に関する問題は発生していません。通常のローカル ターミナル セッションでは、上記のような問題は発生しません。

電話env | sort | grep -E '^(LANG(UAGE)?|LC_\w*)='をかけると

LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_ADDRESS=lv_LV.UTF-8
LC_IDENTIFICATION=lv_LV.UTF-8
LC_MEASUREMENT=lv_LV.UTF-8
LC_MONETARY=lv_LV.UTF-8
LC_NAME=lv_LV.UTF-8
LC_NUMERIC=lv_LV.UTF-8
LC_PAPER=lv_LV.UTF-8
LC_TELEPHONE=lv_LV.UTF-8
LC_TIME=lv_LV.UTF-8

これはサーバーのロケール設定で修正できるものなのでしょうか? それとも、ssh セッションを開始するときに使用すべきパラメータがあるのでしょうか?

関連情報