Python 如何列印出中文字元?

現在用 notepad++,在 UTF-8 格式下編寫以下語句:

#coding=utf-8

print"請輸入銷售額"

列印結果是亂碼。

用的是 Python2.7.8 版本,在 eric 編譯器下面編譯的。


必須明確的是:無論是在什麼設備上顯示一串字元串(特別是非ascii),都會涉及字元串的編碼方式和顯示設備的編碼方式,只有二者兼容才不會出現亂碼的情況。

這裡的顯示設備是廣義的,如終端,編輯器,IDE等等。

所以,請保證你的顯示設備與字元串本身編碼一致即可解決此問題。(例如eric也是utf-8,或者將#coding設置為與eric編碼相同的編碼即可)


可以的話盡量遷移到Python3。。

只需要print("我是漢字")


print u"請輸入銷售額"


print u"" 或者 str.decode("utf-8"")類似這樣 還有 windows平台下的IDLE上的字元串默認解碼是GBK


不邀,厚臉皮答;python好像對中文支持一直不好呢,有時候指定路徑還得把路徑改成全英文的,

這也是一直困擾我的問題,所以一看見這個問題就進來了;跑去搜了下。具體可以看Python中文全攻略這篇文章,我剛試了下,print u"請輸入銷售額"可以列印出不亂碼的中文。

第一次回答問題,好緊張的說。


可以使用unicode函數

print (unicode("請輸入銷售額", encoding="utf-8"))

將utf-8編碼轉換為unicode就可以輸出中文了。


關於python的中文字元,最近有點接觸。

通常中文字元請務必寫成 u"中文超容易亂碼"的形式。

如果是從excel等office系列軟體或者從windows系統里導入內容,請寫出 temp_str.decode("gb2312")

再有一些從網上爬下的數據可能要寫成 temp_str.encode("utf-8")


謝邀。編碼問題在Windows下總是會出奇怪的問題。

簡單的辦法就如 @wuy1019 所說,直接把字元串的類型指定為Unicode就可以解決了。

另外一個更好的辦法是,不要使用Python 2,使用Python 3就沒有這種問題了。


import json

dic = json.dumps(dic, ensure_ascii = False, encoding = "utf-8")


# coding=utf-8
import sys
reload(sys)
sys.setdefaultencoding("utf8")

開頭加上這些就好了。


人生苦短,我用python3


哈哈,剛好遇到了這個問題,python2.7.14.notepad++,編碼設置成了(以UTF-8無BOM格式編碼)微軟windowsPowerShell。

# -*- coding: utf-8 -*-
print("中文python")

輸出亂碼

# -*- coding: utf-8 -*-
print(u"中文python")

正常輸出。

兩者輸入上的區別無非是一種用UTF-8編碼(也會轉化成Unicode供內存讀取),一種用Unicode,直接供內存讀取。這一點在廖雪峰老師官網的python2.7舊版教材中有提醒:

如果你使用Notepad++進行編輯,除了要加上# -*- coding: utf-8 -*-外,中文字元串必須是Unicode字元串:

並且文章下面有討論。


Windows系統編碼有點亂,經常在這個機子上可以顯示中文了,換了一台,又不行了。傷腦筋。


推薦閱讀:

三十歲從電氣轉行 IT 是否可行?
Flask的g對象,範圍是什麼?
python有哪些發展方向?
為什麼說浮點數缺乏精確性? python中浮點數運算問題
Apache伺服器上同時運行php的網站和django的網站,該如何配置Apache和Django的URL?

TAG:Python | Python入門 |