2011-06-27 61 views
2

我的Emacs-emms配置有問題。似乎歌曲ID3標籤中的Unicode特殊字符與他們的unicode沒有呈現一起出現。例如,Trentemøller(音樂樂隊)顯示爲Trentem \ 370ller。 它似乎來自mp3info(當在Emacs之外使用mp3info時,這些字符也不能很好地呈現),當使用播放器mpg321時emms使用這些字符。我怎麼能在這裏解決我的問題?你是否對其他emms後端玩家有這樣的問題? 你配置你的emm的方式,你沒有這個問題?如果是這樣,你的配置是什麼?Emacs EMMS和mp3info/mplayer的Unicode問題

我在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統一設置

(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) 

回答

0

我想,你還需要設置「默認程序編碼系統」變量 - 這是用於所有I/O操作...

+0

感謝您的幫助亞歷克斯。我試圖在我的.emacs中定義這個變量,但是我沒有找到應該設置的值:事實上,當我評估我的緩衝區時,emacs回答我'utf-8的值不正確。我也查閱了[Emacs Lisp手冊](http://www.gnu.org/software/emacs/elisp/html_node/Default-Coding-Systems.html),這對我沒有太大的幫助。最後,我在[github](https://github.com/alexott/)上查找了自己的.emacs文件,在那裏我已經關注了你的工作了一段時間,但是你似乎已經定義了你的編碼環境不同: - /。 – Speredenn

+0

這個變量是cons對,所以你需要使用類似於''(setq-default default-process-coding-system'(utf-8。utf-8))''來設置它。有關更多詳細信息,請參閱http://www.gnu.org/software/emacs/elisp/html_node/Default-Coding-Systems.html ... –

+0

另一個提示 - 不是顯式設置所有變量,最好是自定義變量'current (我記得) –

1

也許你可以使用emms-print-metadata設置mp3info。

在EMMS包包含EMMS-打印metadata.c:

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

移動EMMS打印元數據到您的路徑,並添加此行inot你的.emacs:

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

享受。 :-)