Ads 468x60px

##EasyReadMore##

30 4月, 2014

[python] 取 mp3 ID3 出現亂碼 UnicodeDecodeError: 'utf8' codec can't decode byte 0xb0 in position 35: invalid

為了從 mp3 讀出 ID3 資訊

本來在 windows 環境下中文顯示都是正常

po 到 linux 卻出現了亂碼

查了一下原來是 Big5 在亂

而 windows  原本就是 Big5 所以顯示是正常的

所以在 linux 下需要轉碼

可以先用

type(str) //str 為字串變數

print 出來為

<type 'str'>

不能直接轉成 utf8
否則會出現

UnicodeDecodeError: 'utf8' codec can't decode byte 0xb0 in position 35: invalid

要先轉成 unicode

str('str').decode('Big5')

再 type(str) 一次

<type 'unicode'>

可以發現變成了 unicode
str('str')..encode('utf8')
就會顯示正常的中文

其實可以把整串簡寫成
str(id3info.year).decode('Big5').encode('utf8')

http://www.jb51.net/article/26543.htm

用 Python 搞定亂七八糟字串

0 意見:

張貼留言

 
Blogger Templates