歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux技術

Linux下文件名、文件和mp3名字、pdf的亂碼問題

如果是剛剛從windows轉到Linux下的,通常都會因為一些中文的問題而放棄,我就是這樣裝上,卸載搞過好幾次,其實這種心態是永遠都學不到東西的,真正的學者都具有一顆大無畏的精神,在他們的字典裡是找不到退縮的,好了,不扯了,下面轉入正題。

    這裡我用到了三個工具,convmv, iconv, python-mutagen.分別處理上述三個問題,下面一一介紹:

    convmv 實現文件名字的轉換:
    sudo apt-get install convmv
    convmv -f code1 -t code2 -r

    code1:目錄原來使用的字符集編碼。支持gb2312, gbk, big5,不支持gb18030和big5-hkscs
    code2:預轉換到的字符集編碼。對於ubuntu,這裡填寫utf8

    -r 參數:轉換子目錄
    -f : from
    -t : to
    dir:要轉換的目錄

    man convmv查看幫助文件,這個非常有用,學會看Linux的幫助文檔對於Linux和英語的學習都有很大益處,強烈建議大家多使用man命令:)

    iconv實現文件內容的轉換:

    iconv -f code1 -t code2 oldfile > newfile

    其他命令和參數請大家使用man進行查閱,並不是我懶,我是不想讓大家變懶,不管怎樣,我們都應該自己去體會這個過程,這樣才能把它真正學會。

    python-mutagen---mp3 ID3 tags設置工具
    Mutagen 是一個用來處理聲音相關數據的 Python
    模塊.它支持 ID3(所有版本),APEv2,Ogg Vorbis,FLAC和Ogg
    FLAC讀取,以及ID3v1.1,ID3v2.4,APEv2,Ogg Vorbis,FLAC還有Ogg
    FLAC信息寫入.也可以用來讀取MPEG音頻和Xing標題.FLAC流信息塊,以及Ogg vorbis,Ogg
    FLAG流標題.最後,它包含一個處理Ogg 流的模塊.
    mid3v2 -a artist -A album -t title -c comment -g genre mp3file
    設置mp3file的ID3 tags
    find . -iname "*.mp3" -execdir mid3iconv -e GBK {} \;
    
    這會轉換當前目錄其子目錄中的 mp3 文件標簽編碼為正確的 utf8,-execdir意思是對查到的每個文件執行後面的shell腳本,腳本中-e GBK意思是文件原來使用的字符集編碼,讀者還可以man find一下,看看-iname和-name的區別,呵呵,總是喜歡給你們賣關子:)
    PDF亂碼問題解決:
    第一步,安裝中文語言支持包:
    sudo apt-get install xpdf-chinese-simplified xpdf-chinese-traditional
    安裝完後打開pdf文檔,如果發現仍然是亂碼,進行第二步,安裝安裝poppler-data:從8.04開始,源中開始提供poppler-data安裝包的支持,可以直接輸入命令
    sudo apt-get install poppler-data
    或者去官方下載tar.gz壓縮包自己安裝,網址是
    http://poppler.freedesktop.org/
    ,自己編譯安裝,在此不在熬述
    若第一,二步完成後,打開pdf文檔中文亂碼都變成方塊的話,就進行第三步,刪除字體
    sudo rm /etc/fonts/conf.d/49-sansserif.conf
    好了,到這裡,相信大家可以開心的使用Linux了,我是很開心啦,一次性解決了亂碼問題是一方面,另一方面,今天我的blog被Google收錄了,呵呵,這就意味這我的這些筆記可以給更多的人提供參考了,同樣我的筆記也借鑒了很多人的筆記,正所謂取之於民,用之於民也 :)

只需要把mp3標簽裡面用gbk、gb18030、big5等編碼存儲的中文內容修改為Unicode編碼,那麼基本上所有Linux下的播放器都能正常識別mp3標簽了。
關於mp3編碼的轉換,介紹一個工具----Mutagen,假如你安裝了Quod Libet,那麼這個包已經安裝上去了。如果沒有,執行下列命令就可以了。 

sudo apt-get install python-mutagen 

工具的使用方法 

#轉換mp3文件所在的目錄下,執行:
         mid3iconv -e gbk *.mp3  
#轉換當前目錄下所有mp3文件(包括子目錄)執行:
         find . -iname "*.mp3" -execdir mid3iconv -e gbk {};
如果覺得每次都要輸入命令很麻煩,也可以建立個shell腳本來批量轉換:
          新建文件,寫入:


復制代碼代碼如下:
#!/bin/sh
IFS=""
find . -iname "*.mp3" -execdir mid3iconv -e gbk {};

然後把文件保存,拷貝到想要轉換的目錄下,執行就可以了(執行腳本的命令為 #sh filename)。

因為現在在網上下載的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為UTF8
sudo apt-get install convmv
convmv -r -f cpArray36 -t utf8 ?notest ?nosmart *
批量轉換src目錄下的所有文件內容由GBK到UTF8

find src -type d -exec mkdir -p utf8/{} ;
find src -type f -exec iconv -f GBK -t UTF-8 {} -o utf8/{} ;
mv utf8/* src
rm -fr utf8

轉換文件內容由GBK到UTF8
iconv -f gbk -t utf8 $i > newfile
轉換 mp3 標簽編碼
sudo apt-get install python-mutagen
find . -iname "*.mp3" -execdir mid3iconv -e GBK {} ;

Linux下MP3名字亂碼

解決方法:安裝python-mutagen
安裝方法(root權限,你懂得)
fedora等紅帽的:
yum install python-mutagen
ubuntu等debian的:
apt-get install python-mutagen
安完後
mid3iconv -e gbk *.mp3
OK~

Copyright © Linux教程網 All Rights Reserved