
Buildroot ツールで作成した Linux を持っています。
そして、キリル文字の名前を持つファイルを作成する際に問題が発生しました。たとえば、次のようなコマンドでファイルを作成しようとすると、
touch файл.txt
のような名前のファイルを取得します????.txt
。
変数をエクスポートしようとしましたLANG
:
# export LANG=ru_RU.utf8
# echo $LANG
ru_RU.utf8
また、ディレクトリと EXT3 パーティションにファイルを作成しようとしました/temp
が、結果は同じでした。
一般的に、システム内でキリル文字を使用できます。プログラムはキリル文字を印刷でき、プログラム内でキリル文字の記号を使用できます (たとえば、vi など)。
他に何を試せばいいでしょうか?
答え1
touch
したファイル名を正しく作成します。しかし、ls
表示されません。これは、ls
印刷可能な文字として認識されないものには、デフォルトで疑問符が表示されるためです。
これをテストするには、別のコマンドを使用してディレクトリの内容を表示します。次のコマンドのいずれかを試してください。
$ ls --show-control-chars
$ sh -c 'echo *'
$ python3 -c 'import os; print(os.listdir("."))'
と入力したときと同じように、$LANGをUTF-8ロケールに設定すると、export LANG=ru_RU.UTF-8
問題は解決するはずです。それでもうまくいかなかったので、
- が設定されている場合は
LC_CTYPE
、 の値が上書きされますLANG
。 - システムはロシア語サポート付きでインストールされていますか? そうでない場合は、 などのサポートされている別のロケールを使用してください
en_US.UTF-8
。