pythonutf8轉unicode
① python3中為什麼在print之前要將utf8解碼成unicode
因為data是bypes類型的數據,需要轉碼成字元串啊。decode是解碼的意思,utf8是按照什麼格式來解碼,也就是說把二進制的data轉碼成utf8的字元串。
不轉碼直接列印出來的是bytes的。字元串前面有個b的。
② python中的u和unicode編碼問題!!!!
#-*-coding:gbk-*-
importsys
reload(sys)
printsys.getdefaultencoding()
printu'中文'
printunicode('中文','gbk')
你運行下這個程序,就能看出來,python2默認是ascii,雖然你文件使用的gbk,但是不會影響默認編碼。
print u'中文',這個是直接定義一個unicode字元串。
unicode('中文')這個是生成unicode對象,解釋器會對內容使用默認編碼進行解碼,轉換成unicode,默認的是ascii,所以報錯,你指定gbk就可以了。
如果解決了您的問題請採納!
如果未解決請繼續追問
③ python 怎麼把字元轉換為unicode編碼
實現代碼如下:
a
=
'abce'#
print
type(a)b
=
a.decode("ascii")#
print
type(b)c
=
a.decode("ascii").encode("utf-8")#
print
type(c)
在python中進行編碼轉換都是通過unicode作為中間值實現的。所以要先decode成unicode字元,然後再使用encode轉換成utf-8編碼的str。可以把注釋取消了,看下轉換過程中的類型。
④ Python中中文字元串怎麼處理
如果處理的字元串中出現中文表示的字元,要想不出錯,就得轉成unicode編碼了。具體的方法有:
1、decode(),將其他邊編碼的字元串轉換成unicode編碼,如str1.decode('gb2312'),表示將gb2312編碼的字元串str1轉換成unicode編碼;
2、encode(),將unicode編碼轉換成其他編碼的字元串,如str2.encode('gb2312'),表示將unicode編碼的字元串str2轉換成gb2312編碼;
3、unicode(),同decode(),將其他編碼的字元串轉換成unicode編碼,如unicode(str3, 'gb2312'),表示將gb2312編碼的字元串str3轉換成unicode編碼。
轉碼的時候一定要先搞明白字元串str是什麼編碼,然後decode成unicode,最後再encode成其他編碼。
另外,對一個unicode編碼的字元串在進行解碼會出錯,所以在編碼未知的情況下要先判斷其編碼方式是否為unicode,可以用isinstance(str, unicode)。
不僅是中文,以後處理含非ascii編碼的字元串時,都可以遵循以下步驟:
1、確定源字元的編碼格式,假設是utf8;
2、使用unicode()或decode()轉換成unicode編碼,如str1.decode('utf8'),或者unicode(str1, 'utf8');
3、把處理後字元串用encode()編碼成指定格式。