6

Я недавно перешел с OpenSuSE на Arch Linux. Файлы с символами юникода в имени раньше отображались нормально, но после переключения я просто получаю моджибаке. Например, в моей музыкальной библиотеке Queensrÿche отображается как Queensr¿che.

Это происходит и на консоли.

Я собрал соответствующую ветку на форумах Arch Linux, но не получил ответа.

1 ответ1

11

Возможно, ваша локаль настроена неправильно; наиболее вероятная причина в том, что, хотя имена файлов хранятся в UTF-8, ваш терминал (я полагаю, Konsole) все еще ожидает устаревшую кодировку ISO-8859- *.

Остальное я не знаю, но вот несколько шагов, чтобы убедиться в правильности базовой конфигурации.

Этот скрипт также может помочь.

  1. Отредактируйте /etc/locale.gen, убедитесь, что вы предпочитаете .UTF-8(например, en_US.UTF-8) не комментируется.

    (По умолчанию Arch не включает никаких локалей.)

  2. Запустите locale-gen для генерации локалей, если они еще не были сгенерированы.

    (В настоящее время сгенерированные локали перечислены по locale -a .)

  3. Отредактируйте /etc/locale.conf и добавьте LANG=en_US.UTF-8 .

    (Переменная LOCALE= в /etc/rc.conf делает то же самое, но в некотором смысле не рекомендуется в пользу locale.conf.)

  4. Выйдите полностью, затем войдите снова, чтобы обновить переменные среды.

  5. Запустите env | egrep '^(LANG|LC_)' | sort чтобы увидеть, какие настройки локали находятся в среде вашей оболочки.

    Запустите tr \\0 \\n < /proc/$PPID/environ | egrep '^(LANG|LC_)' | sort чтобы увидеть среду терминала .

    Обе команды должны возвращать одинаковый вывод. Если нет, то они оба должны хотя бы иметь ».UTF-8 "в значениях LANG . (".UTF-8 "и" .utf8 "можно считать идентичными.) Кроме того, ни одна из команд не должна перечислять LC_ALL .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .