Вопрос или проблема
Я использую Arch Linux с KDE Plasma. Язык системы установлен на английский. Шрифты корейского/японского языка установлены. В Dolphin файлы с корейскими/японскими именами отображаются корректно. Но в Konsole их названия отображаются как экранированные последовательности, такие как ”$’\355\205\214\354\212\244\355\212\270”.txt’. В профиле Konsole кодировка по умолчанию уже была установлена на UTF-8.
Как решить эту проблему?
Вывод команды strings /proc/$$/environ | grep -e LANG -e LANGUAGE -e LC_ | sort
LANG=en_GB.UTF-8
LANGUAGE=en_GB
LC_ADDRESS=en_GB.UTF-8
LC_MEASUREMENT=en_GB.UTF-8
LC_MONETARY=en_GB.UTF-8
LC_NAME=en_GB.UTF-8
LC_NUMERIC=en_GB.UTF-8
LC_PAPER=en_GB.UTF-8
LC_TELEPHONE=en_GB.UTF-8
LC_TIME=en_GB.UTF-8
Вывод команды locale
locale: Не удается установить LC_CTYPE в локаль по умолчанию: Нет такого файла или каталога
locale: Не удается установить LC_MESSAGES в локаль по умолчанию: Нет такого файла или каталога
locale: Не удается установить LC_ALL в локаль по умолчанию: Нет такого файла или каталога
LANG=en_GB.UTF-8
LC_CTYPE="en_GB.UTF-8"
LC_NUMERIC=en_GB.UTF-8
LC_TIME=en_GB.UTF-8
LC_COLLATE="en_GB.UTF-8"
LC_MONETARY=en_GB.UTF-8
LC_MESSAGES="en_GB.UTF-8"
LC_PAPER=en_GB.UTF-8
LC_NAME=en_GB.UTF-8
LC_ADDRESS=en_GB.UTF-8
LC_TELEPHONE=en_GB.UTF-8
LC_MEASUREMENT=en_GB.UTF-8
LC_IDENTIFICATION="en_GB.UTF-8"
LC_ALL=
Сообщения об ошибках от locale
предполагают, что фактические данные локали могут не быть успешно сгенерированы для локали en_GB.UTF-8
.
Проверьте свой файл /etc/locale.gen
: убедитесь, что строка
en_GB.UTF-8 UTF-8
не закомментирована, а затем выполните locale-gen
от имени root. Если есть какие-либо сообщения об ошибках, что они говорят? Решает ли выполнение locale-gen
проблему? (вам, возможно, потребуется открыть новое окно Konsole, чтобы увидеть эффект)
Ответ или решение
Проблема отображения имен файлов на корейском и японском языках в Konsole
Вы сталкиваетесь с проблемой, когда имена файлов на корейском и японском языках отображаются в консоли (Konsole) как экранированные последовательности, например, '$'\355\205\214\354\212\244\355\212\270''.txt'
. В то время как в других приложениях, таких как Dolphin, они отображаются корректно. Давайте разобрать подробнее, как решить эту проблему.
Анализ текущей конфигурации локали
Согласно выведенной информации, ваши текущие настройки локали не совсем корректны. Программа locale
сообщает, что не удается установить некоторые параметры локали, такие как LC_CTYPE
и LC_MESSAGES
, что может указывать на отсутствие необходимых данных локали.
Вывод команды locale
предоставляет следующую информацию:
LANG=en_GB.UTF-8
LC_CTYPE="en_GB.UTF-8"
Однако отсутствует корректная установка LC_ALL
, а также проблема с настройками, возможно, связана с тем, что данные локали для en_GB.UTF-8
не были успешно сгенерированы на вашем компьютере.
Рекомендации по исправлению ошибки
-
Проверка файла конфигурации локалей
Откройте файл/etc/locale.gen
и убедитесь, что строкаen_GB.UTF-8 UTF-8
не закомментирована. Если она закомментирована (начинается с#
), удалите решетку в начале строки. -
Генерация локалей
После того как вы убедитесь в правильности записи вlocale.gen
, выполните команду:sudo locale-gen
Эта команда сгенерирует недостающие данные локали. Обратите внимание на любые выводимые сообщения об ошибках и устраните их.
-
Перезагрузка терминала
После выполнения команд откройте новое окно Konsole, чтобы изменения вступили в силу. -
Проверка локали снова
Выполните командуlocale
в новом окне Konsole, чтобы убедиться, что все параметры локали установлены правильно и ошибок не возникает. -
Дополнительные настройки
Убедитесь, что в настройках Konsole установлен кодировщик "UTF-8". Перейдите в настройки профиля консоли и проверьте, что выбран нужный кодировщик.
Дополнительные советы
- Если проблема не решена, попробуйте установить, какие шрифты используются в Konsole. Убедитесь, что установлены поддерживаемые шрифты для CJK (китайские, японские и корейские) символов. Некоторые шрифты могут не поддерживать определенные языки и вызывать подобные проблемы.
- Настройте переменные окружения через
.bashrc
или.zshrc
, добавив строки, устанавливающие корректные локали:export LANG=en_GB.UTF-8 export LC_ALL=en_GB.UTF-8
И затем выполните команду
source ~/.bashrc
илиsource ~/.zshrc
, чтобы изменения вступили в силу.
Следуя этим шагам, вы сможете устранить проблему с отображением имен файлов на азиатских языках в Konsole. Если возникнут сложности или ошибки на каком-либо этапе, предоставить их описание здесь поможет провести более детальный анализ проблемы.