Кириллические символы в именах файлов Linux

Кириллические символы в именах файлов Linux

У меня 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.

Связанный контент