Rhythmbox中文亂碼解決

來源:互聯網
上載者:User

Rhythmbox中文亂碼解決 進入你的音樂檔案夾執行如下代碼: mid3iconv -e GBK *.mp3 如果沒有提示多試幾次,有可能系統會提示:  www.2cto.com  python-mutagen沒有安裝。 sudo apt-get install python-mutagen 安裝。 輸入如上的命令,斷行符號。等安裝好程式之後,再回到你的音樂檔案夾,輸入命令: mid3iconv -e GBK *.mp3 斷行符號。然後重新開啟rhythmbox,OK! 所有mp3都能正常顯示了。  www.2cto.com  mid3iconv 命令主要是將原來mp3音樂檔案的ID3資訊轉換成了Unicode並用ID3v2的格式存迴文件中。----------------------------------------------------------------------------------------------另外一個是用 Python 寫的 “Mutagen”,目前最新版本 1.11,Ubuntu 7.04 源裡也帶有 1.10 版本的 Mutagen,可以用這個命令來安裝:sudo apt-get install python-mutagen ps:安裝 Quod Libet 和 Listen 都必須這個 使用方法:mid3iconv -e gbk *.mp3 如果想轉換目前的目錄下的所有 mp3 (包括子目錄):find . -iname "*.mp3" -execdir mid3iconv -e gbk {} \; * 相信現在大陸絕大多數能找到的 mp3 標籤都是以 GBK/GB18030 編碼,使用 -e gbk 來處理就夠了,當然你也可以使用 -e gb18030 來處理。* -e gbk 參數是代表把 GBK 編碼的標籤轉換為 Unicode 編碼,本身是 Unicode 編碼的就不轉換。如果需要轉換其他編碼的檔案可以自行修改,如改為 Big5。* 經測試,轉換後為 2.4 版的 ID3v2,編碼格式為 uft-16* 不過它會同時用 Unicode 編碼填滿 D3v1, ID3v2, APEv2 標籤,但是 ID3v1 又不支援中文的 Unicode 編碼,所以轉換後的 ID3v1 標籤全是問號。所以最好加上 –remove-v1 參數,轉換後刪除 ID3v1 標籤。mid3iconv -e gbk --remove-v1 *.mp3-----------------------------------------------------------------------------------Rhythmbox Music Player是ubuntu內建的一款音樂播放器,功能還算比較強大,使用也簡單。唯一的缺點就是中文顯示亂碼,原因是由於編碼不同所致。在這裡介紹一個解決方案,修改變數。在終端輸入:1vi~/.profile在最後加入下面內容:12exportGST_ID3_TAG_ENCODING=GBK:UTF-8:GB18030exportGST_ID3V2_TAG_ENCODING=GBK:UTF-8:GB18030儲存退出。1source~.profile重啟Rhythmbox把歌曲重新匯入即可顯示正確。此方法在Ubuntu 10.04可行,其他版本應該問題也不大。----------------------------------------------------------相信很多朋友在Linux裡播放mp3的時候,不論使用何種mp3播放器,或多或少都會遇到mp3標籤亂碼的問題。我一般在遇到mp3標籤顯示亂碼的時候 都是使用Ex Falso(Quod Libet內建的一個mp3標籤編輯器)來編輯一下標籤,使我的播放器Quod Libet能夠正常識別mp3標籤。遇到轉換歌曲少的時候,這樣做沒有什麼問題,但是很多剛從Windows轉到Linux上來的朋友就頭大了,很多在 Windows下顯示正常的mp3標籤在Linux下全都亂套了。 我們先來看看一些關於mp3的標籤和編碼的概念再來解決這個問題,大家就會比較清晰一些了。 mp3的標籤類型和編碼,現在主要存在這幾種標準,ID3v1、ID3v2 2.3、ID3v2 2.4、APEv2。它們分別支援的編碼為ID3v1:只支援ISO--8859-1ID3v2 2.3:ISO--8859-1、UTF-16ID3v2 2.4:ISO--8859-1、UTF-16、UTF-8APEv2:UTF-8我們可以從上面的列表看出,mp3的標籤類型和編碼是多種多樣,沒有任何的規範可言的。ID3v1隻支援ISO-8859-1這一種編碼,它是不支援中文 的,所以一般來說只有ID3v1標籤的mp3在Linux上基本上也都是亂碼的命,而ID3v2 2.3支援的格式增加了UTF-16,直到ID3v2 2.4版才開始支援UTF-8,但是 ID3v2的兩個版本標準並沒有統一標籤內容的編碼。這裡值得一提的是APEv2,它擁有最好的擴充性,它把編碼格式統一為UTF-8,這樣一來只要支援 APEv2讀取的播放器播放帶有APEv2標籤的mp3就不會存在亂碼問題。可惜的是現在在國內的網站上下載的mp3基本上都沒有APEv2標籤,而且 Linux下也沒有幾個播放器支援APEv2標籤的讀取。(目前Gnome裡的Rhythmbox是支援APEv2標籤讀取的,包括Quod Libet都不可以。) 一首mp3的標籤是可以包含多種類型的,當一首mp3同時含有ID3v1、ID3v2 2.3、ID3v2 2.4、APEv2這4種類型中兩種以上的時候,播放器對mp3標籤的讀取順序一般是由上往下的,APEv2(前提是播放器支援此編碼的讀 取)---ID3v2---ID3v1。所以有時候會出現同一檔案Rhythmbox顯示標籤正常(讀取APEv2標籤),其他播放器不正常的情況(讀取 了ID3的標籤)。 接著我們說說在Linux系統裡,為什麼所有的mp3播放器都會有亂碼的問題,這是因為這些mp3播放器都是依賴系統內的libid3tag庫完全按照 ID3的標準來讀取標籤內容的。 它不論mp3是採取何種的標準的標籤(ID3v1、ID3v2、APEv2),只要mp3的標籤的內容是Unicode編碼儲存的,那麼顯示肯定是正常的 (ID3v1的ISO-8859-1嚴格說是不支援中文,但是並不是代表它不能儲存中文)。如果遇到是以gbk、gb18030、big5等編碼的中文內 容時,它還是會把它當成ISO-8859-1來讀取,亂碼就成了必然。 說了這麼多,現在問題就變得簡單了,似乎我們只需要把mp3標籤裡面用gbk、gb18030、big5等編碼儲存的中文內容修改為Unicode編碼,那麼基本上所有Linux下的播放器都能正常識別mp3標籤了。 關於mp3編碼的轉換,這裡介紹一個工具----Mutagen,假如你安裝了Quod Libet,那麼這個包已經安裝上去了。如果沒有,執行下列命令就可以了。sudo apt-get install python-mutagen 工具的使用方法mid3iconv -e gbk *.mp3 #轉換目前的目錄的mp3檔案find . -iname "*.mp3" -execdir mid3iconv -e gbk {} \;   #轉換目前的目錄下所有mp3檔案(包括子目錄) 因為現在在網上下載的mp3絕大多數採用的都是gbk/gb18030編碼,-e gbk 參數是代表把gbk編碼的標籤轉換為Unicode編碼,假如mp3標籤本身是Unicode編碼的就不轉換。如果需要轉換其他編碼的檔案可以自行修改 gbk參數,比如改為gb18030、big5。轉換後為的mp3標籤類型為ID3v2 2.4,編碼格式為UTF-16。  到了這一步之後,在Linux下使用所有播放器估計都沒有什麼問題了。 下面我們回過頭來看看,追溯一下根源,為什麼這些mp3原來在Windows下用Media Player怎麼都是顯示正常的呢?難道是Linux不如Windows嗎?其實這個道理很簡單,Firefox同樣也打不開很多IE輕鬆就能開啟的頁 面,能說明Firefox不如IE嗎?知情的人一看就明白了。Windows為了它所謂的相容性,完全無視規範,自定規則,貌似它的軟體相容性很好,其實 到頭來,毀的還是使用者,從眾多的不符合W3C規範的網頁和現在鋪天蓋地的mp3標籤為gbk/gb18030編碼就可見一斑(反正我現在從網上下載的 mp3在Linux下就沒有看到幾個能正常顯示的)。 可以告訴大家的是,利用上面的方法轉換編碼之後,這些mp3在Windows的檔案屬性菜單和Media Player裡都無法正常顯示標籤,將會全部變為"?"。因為mid3iconv命令在轉換編碼時預設它會用Unicode編碼填滿D3v1, ID3v2, APEv2標籤(前提是檔案本來就含有這些類型的標籤),但是 ID3v1 又不支援中文的 Unicode 編碼。而Media Player似乎只支援ID3v1的讀取,當然你使用其他的支援ID3v2、APEv2類型讀取的軟體是沒有問題的。 這裡給大家推薦一個Windows下的mp3播放器---Foobar2000,在以前Windows的生涯中,我一直都是使用的這個播放 器,foobar2000支援全系欄標籤的讀取,更值得稱讚的是它預設使用ID3v2 2.4類型UTF-8編碼的寫入,完全解決了編碼方面的問題。  給出一個個人提供的最終解決方案。1.系統內容完全就是Linux。直接使用下面的這條命令,轉換所有mp3檔案,完全無視Windows下的使用體驗。mid3iconv -e gbk *.mp3  當然了,如果你為了避免自己的mp3檔案分享權限設定給Windows或者mp3的使用者時,出現煞風景的"?",你可以添加一個--remove-v1這樣一個參數來直接刪除ID3v1標籤,避免了檔案屬性和Media Player裡出現"?"。mid3iconv -e gbk *.mp3 --remove-v1  2.系統內容為Windows+Linux的雙系統推薦使用foobar2000播放器,對檔案進行mp3標籤的編輯,可以在foobar2000裡選中所有mp3檔案,進行檔案標籤重 寫,foobar2000會把所有標籤進行重寫,使標籤採用ID3v2 2.4類型UTF-8編碼的寫入,完全解決Windows和Linux下mp3檔案的編碼問題。這也是比較完美的解決辦法。 foobar支援三種標籤編碼方式 :ID3V1  ID3V2   APEv2將mp3檔案用這三種編碼都進行轉化的話  window和linux都不會出現亂碼或者 ? foobar編輯標籤的功能很強大  標籤名字兩邊加%   比如流派  %genre%  就可以讀出來值不妨一試

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.