python文件输出中文_【python】中文的输出,打印,文件编码问题解决方法
直接在python中輸入中文的字符串會報(bào)編譯錯誤SyntaxError: Non-ASCII character,因?yàn)閜ython文件默認(rèn)編碼方式是ASCII。如果想要打印中文字符,有兩種方式:
1.在文件第一行加入# -*- coding: UTF-8 –*-,修改文件的默認(rèn)編碼方式。然后直接在python 文件編輯中文字符串即可,例如:string = “中文”
2. 將需要打印的中文字符轉(zhuǎn)化成unicode編碼并且加上u,例如要打印“我們”,則寫成u“\u6211\u4eec”
print u'\u6211\u662f'
3. 如果遇到 類似UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 0錯誤,因?yàn)樵诙x中文字符串變量時(shí)候,沒有加上u,例如:string = “中文”而不是string = u“中文”,
這個時(shí)候python會把按照默認(rèn)的中文字符串用ASCII進(jìn)行編碼,則可能會出現(xiàn)一些錯誤,要想吧類似string = “中文”的字符串用utf8編碼,在文件前面加上如下代碼即可:
1 importsys2 reload(sys)3 sys.setdefaultencoding('utf8')
4.字符串前面加了U之后會變成unicode類型,這時(shí)候是python獨(dú)立的一種類型,如果直接寫入字符類型的數(shù)據(jù)庫字段或者當(dāng)成字符串進(jìn)行操作,可能會遇到意想不到的錯誤。
5. 如何吧一個 string = '\u5168\u56fd'變成 unicode類型?
用eval("u"+"'\u5168\u56fd'")方法即可
6. scrapy網(wǎng)絡(luò)爬蟲中文亂碼問題解決
(1)判斷抓取網(wǎng)頁字符編碼格式
importchardet
code_format= chardet.detect(response.body)["encoding"]
(2)根據(jù)獲取的編碼方式進(jìn)行解碼,然后采用系統(tǒng)默認(rèn)方式編碼
importsys
type=sys.getfilesystemencoding()
response.body.decode(code_format).encode(type)
總結(jié)
以上是生活随笔為你收集整理的python文件输出中文_【python】中文的输出,打印,文件编码问题解决方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 初学者python编辑器用geany可以
- 下一篇: recv返回值为0_基于GNES和Ten