2012年4月21日 星期六

mp3亂碼,ID3tag



我把一些音樂的mp3檔放到我的ipod上時也有遇到亂碼的問題,後來我看到這篇在MP3中嵌入專輯封面、歌詞以及無亂碼ID3的個人心得
時真是驚為天人。簡單的說,亂碼的原因是因為那些手持裝置只認識unicode,碰到大五碼跟GB碼,甚至是日文韓文的時候就會顯示亂碼了。那只要把ID3標籤裡面的資訊全部改成unicode就行。


當拿到新的mp3檔案後,建議的步驟是:


1. 將檔案放在硬碟中的臨時處
2. Mp3tag 去除多餘的 ID3 標籤
3.有歌詞需求就用千千靜聽把歌詞找好並嵌入
4. iTunes 匯入到自己的 Music 資料夾並且編輯好歌手名、專輯名、歌名
5. 刪除原始檔案。


不過我想,我必須作得更徹底一點,先把檔名改成 Unicode,再作後續處理。因為在Linux底下,使用Unicode比較不會出問題。


在windows底下可以用ConvertZ來作轉碼,不過這我沒試過,我在LinuxMint底下可以在終端機輸入指令就可以解決。


參考這兩篇


UNICODE系統上討人厭的big5碼檔名
Ubuntu Linux - 用mid3iconv及exfalso批次整理舊MP3的ID3標籤


安裝 convmv
apt-get install convmv


檔名轉碼
convmv -f big5 -t utf-8 -r --notest ./*


之後,可以用mid3iconv指令把id3轉碼,


mid3iconv -e big5 -d -p {} \; -print


如果要一起處理底下所有的子目錄的檔案的話就這樣寫
find . -iname "*.mp3" -exec mid3iconv -e big5 -d -p {} \; -print
其中-d指令代表要顯示轉換過程的除錯訊息,以方便檢查轉換是否正確執行。而-p指令表示僅作測試,不會真正把轉換結果儲存回MP3檔案。如果沒問題,把-p參數拿掉,就可以正式完成轉換作業。


如果是採GB2312編碼的簡體中文,則只要修改-e參數的設定。
find . -iname "*.mp3" -exec mid3iconv -e gb2312 -d {} \; -print


如果id3不完整的,在windows底下用Mp3tag這個軟體,其中有兩個轉換功能要特別記下來,一個是把檔名輸入id3,因為很多人把資訊留在檔名或路徑上,用這個功能就可以把這些資訊自動輸入到id3tag裡。例如有個檔案


K:\Media\My Music\國語\女\蘇慧倫_懶人日記\01_一天一天.mp3


這個格式寫成 \%artist%_%album%\%track%_%title%就好了。


第二個是更改檔名,剛剛的例子,我希望把前面的音軌數去掉,路徑改成


K:\Media\My Music\國語\女\蘇慧倫\懶人日記\一天一天.mp3


光改檔名寫法應該是把


%1_%2  改成


%2


可是這樣只會改到檔名,如果我寫成


\%1_%2\%3_%4 改成


\%1\%2\%4的話,路徑就變成


\蘇慧倫\懶人日記\一天一天.mp3


因為磁碟名不見了,所以移到C:去了


偏偏前面的路徑又很長,所以還是乖乖的手動改路徑,只用這個功能改檔名就好了。


在Linux底下則可以用Ex Falso,用法跟windows底下的Mp3tag差不多,不過他不能把目錄名當成檔名的一部份,所以如果有windows的話直接還是用Mp3tag比較好。

沒有留言: