Warum wird das Sonderzeichen in der Befehlszeile maskiert?

Warum wird das Sonderzeichen in der Befehlszeile maskiert?

Ich habe einen AlmaLinux-Server, auf dem ich mit einigen Kodierungsproblemen zu kämpfen habe. Wenn ich beispielsweise Folgendes in die CLI eingebe:

mkdir asdfü
ls ./

Ich bekomme 'asdf'$'\303\274'

Wie kann ich das beheben?

Antwort1

Es sieht so aus, als ob Ihr Terminal so konfiguriert ist, dass die Eingabe/Ausgabe in UTF-8 kodiert wird, aber Ihre Shell-Sitzung befindet sich in einem Gebietsschema mit einem anderen Zeichensatz, in dem die Bytes 0303 und 0274 (Oktal) einzeln oder in Kombination kein gültiges oder gültiges druckbares Zeichen bilden. Höchstwahrscheinlich ist dieses Gebietsschema C/ POSIX(das Standardgebietsschema, wenn es nicht oder falsch definiert ist) und der Zeichensatz ist ASCII (auch bekannt als ANSI_X3.4-1968), das kein Zeichen für die Bytes 0303 oder 0274 (kein Byte über 0177) definiert.

locale charmap

Gibt an, welcher Zeichensatz im Gebietsschema verwendet wird.

locale

Zeigt Ihnen die Gebietsschemakonfiguration.

Wahrscheinlich möchten Sie zumindest $LANGzu einem Gebietsschema wechseln, dessen Zeichensatz UTF-8 ist und Ihren Einstellungen entspricht.

locale -a

Gibt Ihnen eine Liste der auf dem Server verfügbaren Gebietsschemas.

verwandte Informationen