
У меня Linux, созданный с помощью инструмента Buildroot.
И я столкнулся с проблемой создания файлов с кириллическими именами. Когда я пытаюсь создать файл, например такой командой:
touch файл.txt
Я получаю файл с именем типа ????.txt
.
Я попробовал экспортировать LANG
переменную:
# export LANG=ru_RU.utf8
# echo $LANG
ru_RU.utf8
Я также пробовал создать файл в /temp
каталоге и на разделе EXT3, но результат тот же.
В общем, я могу использовать кириллицу в системе: программы могут ее печатать, и я могу использовать кириллические символы в программах (например, в 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
.