
Ich habe ein Linux, das mit dem Tool Buildroot erstellt wurde.
Und ich hatte ein Problem beim Erstellen von Dateien mit kyrillischen Namen. Wenn ich versuche, eine Datei zu erstellen, beispielsweise mit diesem Befehl:
touch файл.txt
Ich erhalte eine Datei mit dem Namen ????.txt
.
Ich habe versucht, die Variable zu exportieren LANG
:
# export LANG=ru_RU.utf8
# echo $LANG
ru_RU.utf8
/temp
Und ich habe auch versucht, die Datei im Verzeichnis und auf einer EXT3-Partition zu erstellen , aber das Ergebnis ist das gleiche.
Generell kann ich im System Kyrillisch verwenden: Programme können es drucken und ich kann in Programmen kyrillische Symbole verwenden (wie zum Beispiel in vi).
Was kann ich sonst noch versuchen?
Antwort1
touch
taterstellt den Dateinamen korrekt. ls
Zeigt ihn aber nicht an. Das liegt daran, dass ls
standardmäßig Fragezeichen für alles angezeigt werden, was nicht als druckbares Zeichen erkannt wird.
Sie können dies testen, indem Sie den Inhalt des Verzeichnisses mit einem anderen Befehl anzeigen. Versuchen Sie einen der folgenden Befehle:
$ ls --show-control-chars
$ sh -c 'echo *'
$ python3 -c 'import os; print(os.listdir("."))'
Das Einstellen von $LANG auf ein UTF-8-Gebietsschema, wie Sie es bei der Eingabe getan haben export LANG=ru_RU.UTF-8
, sollte das Problem behoben haben. Da dies nicht funktioniert hat, überprüfen Sie
- Wenn
LC_CTYPE
festgelegt wurde, wird der Wert von überschriebenLANG
. - Wurde Ihr System mit Russisch-Sprachunterstützung installiert? Falls nicht, verwenden Sie ein anderes unterstütztes Gebietsschema wie
en_US.UTF-8
.