在做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]"
- 圖形化方式,適用於 Ubuntu 使用者,而不適用於 KUbuntu/XUbuntu 使用者。
您可以遵循以下步驟,使您的 gedit 正確顯示中文編碼檔案。
- 按下 Alt-F2,開啟“運行應用程式”對話方塊。
- 在文字框中鍵入“gconf-editor”,並按下斷行符號鍵,開啟“配置編輯器”。
- 展開左邊的樹節點,找到 /apps/gedit-2/preferences/encodings 節點並單擊它。
- 雙擊右邊的 auto_detected 鍵,開啟“編輯按鍵”對話方塊。
- 單擊列表右邊的“添加”按鈕,輸入“GB18030”,單擊確定按鈕。
- 列表的最底部新增加了一個“GB18030”。單擊選中它,並單擊右邊的 “向上” 按鈕直到 “GB18030” 位於列表的頂部為止。
- 單擊確定按鈕,關閉配置編輯器。
現在,您的 gedit 應該能夠順利開啟 GB18030 編碼的文字檔了。
2.將網上下載下來的歌詞,一般是以asp格式結尾的。將其以lrc為尾碼,歌曲名稱為首碼重新命名。然後以UTF-8編碼,行尾為Unix/Linux格式儲存。(這點很重要,因為android的預設編碼是UTF-8).
這樣在android shell中cat file時就會發現全部是中文了,解析的時候就不會出現亂碼了。