コマンドラインで特殊文字がエスケープされるのはなぜですか?

コマンドラインで特殊文字がエスケープされるのはなぜですか?

エンコーディングの問題があるAlmaLinuxサーバーがあります。たとえば、CLIに次のように入力した場合:

mkdir asdfü
ls ./

わかりました。 'asdf'$'\303\274'

この問題をどのように解決できますか?

答え1

端末はUTF-8エンコードされた入力/出力用に構成されているようですが、シェルセッションは異なる文字セットを使用するロケールにあります。ここで、バイト 0303 および 0274 (8 進数) 単独または結合は有効な文字セットを形成しません。ほとんどの場合、ロケールはC/ POSIX(定義されていない、または誤って定義された場合のデフォルトロケール)、文字セットはASCII(ANSI_X3.4-1968とも呼ばれます)で、バイト0303または0274(すべてのバイトの上に0177)はありません。性格。

locale charmap

そのロケールでどの文字セットが使用されているかを通知します。

locale

ロケール設定が表示されます。

少なくとも$LANG文字セットを UTF-8 に変更し、ロケール設定と一致する必要があります。

locale -a

サーバーで使用可能なロケールのリストが提供されます。

関連情報