Я запускаю urxvt с текущим env:

$ env | grep LC
LC_ALL=en_US.UTF-8

Проблема либо в ncurses, либо в ncmpc, и мне было интересно, может кто-нибудь пролить свет на то, в чем может быть проблема. Это также может быть проблемой с тегами ID3, и любые советы по работе с неработающими или неправильно настроенными настройками кодирования в метатегах в mp3-файлах также приветствуются. Я годами игнорировал этот вопрос, и он наконец дошел до меня. Странно то, что некоторые имена файлов или теги работают, а другие нет.

Что я попробовал следующее:

  • установка LC_ALL в эти значения (все, что находится перед пробелом)

    • ru_RU.KOI8-R KOI8-R
    • ru_RU.UTF-8 UTF-8
    • ru_RU ISO-8859-5

  • восстановление базы данных MPD с

    • id3v1_encoding "ISO-8859-1"
      или же
    • id3v1_encoding "UTF-8"

Я могу продемонстрировать проблему с двумя снимками экрана, поскольку это самый простой способ сделать это:

Ожидаемый результат (mpc работает хорошо):

ожидаемый результат

Сломанная кодировка (ncmpc):

неправильная кодировка

Ncmpcpp: та же проблема

ncmpcpp: та же проблема

1 ответ1

0

На втором скриншоте это выглядит так, что ncmpcpp выводит действительный UTF-8, но ваш терминал этого не ожидает.

Узнайте PID вашего эмулятора терминала, затем запустите

cat /proc/<PID>/environ | tr \\0 \\n | egrep "LANG|LC"

Если он показывает что-то отличное от вашей текущей локали, то вы, вероятно, устанавливаете $ LANG/$ LC_ALL не в том месте. Например, .bashrc не будет работать, потому что он не применяется к сеансу X11, а только к программам внутри терминала - лучше использовать .profile или .xprofile .

На самом деле, постоянная установка $ LC_ALL не рекомендуется - достаточно просто LANG=en_US.UTF-8 . (Старайтесь избегать настроек ISO-8859 или KOI8-R.)

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