python中文字符串的處理

python中直接將一箇中文字符串賦值給一個變量使用的是utf-8格式的編碼,以下爲證:

>>> teststr = '我的eclipse不能正確的解碼gbk碼!'
>>> teststr
'/xe6/x88/x91/xe7/x9a/x84eclipse/xe4/xb8/x8d/xe8/x83/xbd/xe6/xad/xa3/xe7/xa1/xae/xe7/x9a/x84/xe8/xa7/xa3/xe7/xa0/x81gbk/xe7/xa0/x81/xef/xbc/x81'
>>> tests2 = u'我的eclipse不能正確的解碼gbk碼!'

>>> test3 = tests2.encode('gb2312')
>>> test3
'/xce/xd2/xb5/xc4eclipse/xb2/xbb/xc4/xdc/xd5/xfd/xc8/xb7/xb5/xc4/xbd/xe2/xc2/xebgbk/xc2/xeb/xa3/xa1'

>>> test3
'/xce/xd2/xb5/xc4eclipse/xb2/xbb/xc4/xdc/xd5/xfd/xc8/xb7/xb5/xc4/xbd/xe2/xc2/xebgbk/xc2/xeb/xa3/xa1'
>>> teststr
'/xe6/x88/x91/xe7/x9a/x84eclipse/xe4/xb8/x8d/xe8/x83/xbd/xe6/xad/xa3/xe7/xa1/xae/xe7/x9a/x84/xe8/xa7/xa3/xe7/xa0/x81gbk/xe7/xa0/x81/xef/xbc/x81'
>>> test3.decode('gb2312').encode('utf-8')
'/xe6/x88/x91/xe7/x9a/x84eclipse/xe4/xb8/x8d/xe8/x83/xbd/xe6/xad/xa3/xe7/xa1/xae/xe7/x9a/x84/xe8/xa7/xa3/xe7/xa0/x81gbk/xe7/xa0/x81/xef/xbc/x81'

>>> test3.decode('gb2312').encode('utf-8') == teststr
True

 

如上所見,test3變量(gb2312編碼)經過解碼(變成unicode字符串)後再使用utf-8編碼,就成了與teststr值相同的串了.

通過上面的例子我們也發現,unicode字符串是gb2312字符串(windows就使用這種格式)與utf-8字符串(python本身使用)之間的一座橋樑.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章