4 回答

TA貢獻(xiàn)1891條經(jīng)驗(yàn) 獲得超3個(gè)贊
把內(nèi)容轉(zhuǎn)換為unicode編碼輸出試試看
content.decode("gbk")
不行再轉(zhuǎn)換為utf-8編碼
content.decode("gbk").encode("utf-8")

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超8個(gè)贊
with open('t', 'r') as f:
print f.read().decode('gbk')
print打印出來(lái)的是ascii類型的字符串,你必須指定用gbk進(jìn)行解碼才能正確顯示中文。

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超4個(gè)贊
樓上兩位分析的應(yīng)該是對(duì)的。
ascii編碼方式不能滿足中文(字符集遠(yuǎn)比256個(gè)多)的需求。
1,首先你要知道request獲取內(nèi)容的編碼是什么格式,比如是gbk編碼的。
2,解碼成unicode編碼,使用content = content.decode("gbk")。
3,然后編碼成utf-8格式的,使用content = content.encode("utf-8")。
ps:unicode像是一種中間狀態(tài)的編碼,只有解碼成unicode之后才能編碼成別的格式。

TA貢獻(xiàn)2039條經(jīng)驗(yàn) 獲得超8個(gè)贊
print會(huì)按照字符原來(lái)的編碼格式打印出來(lái)
但是保存到文件的話,用文件編輯器打開,文件編輯器就會(huì)自動(dòng)識(shí)別編碼,用gbk編碼打開。
所以print是亂碼,保存文件就不是。
添加回答
舉報(bào)