在 ncmpc 中无法看到一些俄语 id3 标签

在 ncmpc 中无法看到一些俄语 id3 标签

我在跑乌尔希使用当前环境:

$ 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

从第二张截图来看,它ncmpcpp输出的是有效的 UTF-8,但是你的终端并不期望如此。

找出你的终端仿真器的 PID,然后运行

猫/proc/<进程ID>/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 设置。)

相关内容