在做Android多媒體播放器的時候,加入了同步顯示歌詞的功能。由於歌詞是直接在網上down的,並且是中文的。所以編碼格式為GBK,GB18030等中文字符編碼格式。在Ubuntu下顯示的是亂碼.將這些LRC push進sd卡進行解析時,也會出現亂碼。
以下是解決方法:
1.配置gedit的編碼列表,下面摘自ubuntu官網上的一篇文章:
缺省配置下,用 Ubuntu 的文本編輯器(gedit)打開 GB18030/GBK/GB2312 等類型的中文編碼文本文件時,將會出現亂碼。
出現這種情況的原因是,gedit 使用一個編碼匹配列表,只有在這個列表中的編碼才會進行匹配,不在這個列表中的編碼將顯示為亂碼。您要做的就是將 GB18030 加入這個匹配列表。
復制以下命令到終端中,然後回車即可:
gconftool-2 --set --type=list --list-type=string /apps/gedit-2/preferences/encodings/auto_detected "[UTF-8,CURRENT,GB18030,BIG5-HKSCS,UTF-16]"
您可以遵循以下步驟,使您的 gedit 正確顯示中文編碼文件。
現在,您的 gedit 應該能夠順利打開 GB18030 編碼的文本文件了。
2.將網上下載下來的歌詞,一般是以asp格式結尾的。將其以lrc為後綴,歌曲名稱為前綴重新命名。然後以UTF-8編碼,行尾為Unix/Linux格式存儲。(這點很重要,因為android的默認編碼是UTF-8).
這樣在android shell中cat file時就會發現全部是中文了,解析的時候就不會出現亂碼了。