【问题标题】:Unicode problems with Emacs EMMS and mp3info/mplayerEmacs EMMS 和 mp3info/mplayer 的 Unicode 问题
【发布时间】:2011-06-27 08:20:01
【问题描述】:

我的 Emacs-emms 配置有问题。 歌曲 ID3tags 中的 Unicode 特殊字符似乎没有呈现其 unicode。例如,Trentemøller(音乐乐队)显示为 Trentem\370ller。 好像来自mp3info(在Emacs外使​​用mp3info时,这些字符也渲染不好),emms在使用播放器mpg321时使用。我怎么能在这里解决我的问题?你对其他 emms-backend-players 有这样的问题吗? 您是否以没有此问题的方式配置您的 emms?如果是这样,您的配置是什么?

我在 MacOSX 上工作。在我的终端控制台中,Unicode 没有问题,无论是使用 Bash 还是安装其他 shell。

编辑:emms用来播放文件的命令是:

mplayer -slave -quiet -really-quiet <song_file.mp3>

在控制台模式下,mplayer 也存在 unicode 问题。所以在我看来,它要么来自 mp3info,要么来自 mplayer。

我的emms配置:

;; EMMS
(require 'emms-setup)
     (emms-standard)
     (emms-default-players)

(require 'emms-player-simple nil 'noerror)
     (require 'emms-source-file nil 'noerror)
     (require 'emms-source-playlist nil 'noerror)
     (setq emms-player-list '(emms-player-mpg321
                              emms-player-ogg123
                              emms-player-mplayer))

(setq emms-info-asynchronously nil)
(setq emms-source-file-default-directory "~/Music/")
(setq emms-playlist-buffer-name "*Music*")
(setq emms-player-mpg321-parameters '("-o" "alsa"))

我的 .emacs 中的 Unicode 设置

(setq locale-coding-system 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-selection-coding-system 'utf-8)
(prefer-coding-system 'utf-8)
(set-language-environment "UTF-8")
(set-input-method nil)
(setq read-quoted-char-radix 10)

【问题讨论】:

    标签: unicode emacs dot-emacs mplayer


    【解决方案1】:

    也许你可以使用 emms-print-metadata 来设置 mp3info。

    在 emms 包中包含 emms-print-metadata.c:

    gcc emms-print-metadata.c -ltag -ltag_c -o emms-print-metadata

    将 emms-print-metadata 移动到您的路径中,并将这一行添加到您的 .emacs 中:

    (require 'emms-info-libtag) (setq emms-info-functions '(emms-info-libtag))

    享受。 :-)

    【讨论】:

      【解决方案2】:

      我认为,您还需要设置“default-process-coding-system”变量 - 它用于所有 I/O 操作...

      【讨论】:

      • 感谢您的帮助,亚历克斯。我试图在我的 .emacs 中定义这个变量,但我没有找到我应该设置的值:事实上,当我评估我的缓冲区时,emacs 回答我说值 'utf-8 不正确。我还查看了Emacs Lisp manual,这对我没有多大帮助。最后,我在github 上查找了您自己的 .emacs 文件,我已经关注您的工作一段时间了,但您似乎对编码环境的定义不同:-/。
      • 这个变量是缺点对,所以你需要使用类似的东西来设置它:'(setq-default default-process-coding-system '(utf-8 . utf-8))'。更多详情请参阅gnu.org/software/emacs/elisp/html_node/…...
      • 另一个提示 - 与其明确设置所有变量,不如自定义变量 'current-language-environment' - 它应该相应地设置所有其他条目(我记得)
      • 好的,default-process-coding-systemcurrent-language-environment 变量已正确设置为 utf-8 :-)。非常感谢。不幸的是,它并没有解决我的 emms 问题 :-(。我认为它来自 mplayer 或 mp3info,因为在 emms 缓冲区中,第一首歌曲与其 IDtags 一起显示并且拼写错误,而下一首歌曲的路径拼写正确(带 ø)。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-16
      • 2018-08-06
      • 2010-09-26
      • 2010-09-25
      • 1970-01-01
      • 2010-10-22
      相关资源
      最近更新 更多