誤って「ñ」と入力し(任意のコマンドを入力することを期待)、それを削除して正しい文字を入力すると、出力は特殊文字が付加されたコマンドを返します�
、明らかにシェルはコマンドを認識しないので、「ñ」文字を再度入力しないように注意して再入力する必要があります。
例えば.
Wrong typing @tachomi:~$ ñs
Correct typing @tachomi:~$ ls
Output �ls: command not found
私が思うに、この種のキャラクターはñ , '
などはシェルと互換性がありません。これが「メモリ」が認識できないものを保持する理由ですが、なぜこれが発生するのかを確認したいと思います。
bashシェルを使用しています
すべての助けのおかげで、私はこれを修正する方法を見つけることができました。
主な問題はUTF-8エンコーディングによるもので、コメントに記載されているようにサーバーで構成されていませんでした。
コメントの引用:
[@Rmano]:UTF-8
では、ñ
は2バイト char
[@jimmij]:何らかの理由でバックスペース文字を削除すると、そのうちの1つだけが削除されます
[@aecolley]:環境変数LANG
をC.UTF-8
に設定してみてください
これは次のように修正されます。
Find your current LANG $ locale -v | grep 'LANG='
Output LANG=en_US
Change $ Sudo LANG=en_US.UTF-8
or
Change $ Sudo vim /etc/default/locale
Edit ~LANG="en_US.UTF-8"
ターミナルセッションを再開します。
マルチバイトエンコーディング(おそらくUTF-8)を理解する端末(または端末エミュレーター)がありますが、理解しないシェルがあります。環境変数LANG
をC.UTF-8
に設定してみてください。または、locale -a
を実行して、試す可能性のある別の値を見つけます。
次のコード行を実行できます。
if [[$(locale -v | grep 'LANG=') != *.UTF-8]]; then Sudo $(locale -v | grep 'LANG=').UTF-8; fi
文字コードがまだUTF-8
でない場合は、文字コードを現在の文字コードのUTF-8
バージョンに設定します。このようにして、シェルはUTF-8文字を理解し、それらを適切にバックスペースします。