㈠ python print無法輸出中文字元
這里提示語法錯誤。因為你沒有指定文件的編碼,默認情況下不能用中文。
如果代碼中有中文、中文的注釋,需要在文件最上面加上這一句:
#encoding:utf-8
print'哈哈哈哈哈'
這樣就OK了,望採納!
㈡ python2.7 window7系統,編碼愁死了,就是打不出中文,求大神幫忙 感激不盡!
#-*-coding:utf-8-*-
importrequests,bs4,sys
res=requests.get("http://www.weather.com.cn/weather/101010100.shtml")
soup=bs4.BeautifulSoup(res.content,"html.parser")
elems=soup.select("h1")
printelems[0].getText()
#18日(今天)
㈢ python2.7.9無法輸出中文
python2.7及以下,輸出字元默認為標准ASCII (0- 127,也就是 byte字元),顯示亂碼應該是你輸出的是 utf-8 編碼字元串,windows控制台默認編碼是gbk(可以通過命令CHCP 65001 設置為utf-8),報錯是因為你輸出的是 unicode 字元(包含128-255)
新人如果對編碼不是很了解,那最好的解決辦法就是,封裝一個unicode轉byte函數,對於要輸出的字元,都調用這個函數,如:
defu2b(text):
ifnotisinstance(text,unicode):
returntext
returntext.encode('utf-8')
㈣ 為什麼Python沒輸出中文
本地執行可以顯示中文。
代碼在線工具中使用以下方法
print("\u5510\u5b9d\u6743".encode('utf-8').decode('unicode_escape'))
㈤ python無法輸入中文怎麼辦
編碼方式改成gbk就可以了。在文件的第一句這么寫:
# -*-coding:gbk -*-
㈥ python命令行輸入中文亂碼怎麼辦
python2.X,代碼中指定了UTF-8,但是在cmd命令行窗口時,列印的中文仍然會亂碼。
在python3不存在該問題
運行結果:
原因
中文windows默認的輸出編碼為gbk ,與腳本中定義的UTF-8不一樣,所以出現了解碼失敗的情況。
相關推薦:《Python基礎教程》
解決方法
有如下兩種方法可以解決這個問題
方法一
我們可以通過先把中文解碼為unicode,然後再轉化為gbk來解決這個問題:
修改後運行結果:
方法二
當然,我們也可以通過改變cmd命令行窗口的輸出格式來解決這個問題:
·chcp 65001 就是換成UTF-8代碼頁
·chcp 936 可以換回默認的GBK
但是這樣就降低了腳本的兼容性,在其他環境運行的時候可能還會出現這樣的錯誤,而且可能會影響其他腳本運行,所以推薦使用第一種方法。
㈦ 請問,python打開中文字元文件,但顯示不出中文怎麼辦
一般是編碼格式的問題,python內部默認的編碼格式是utf-8,常見的文本編碼格式是utf-8,gbk。編碼格式不不一致就會亂碼。可以在代碼前面申明編碼格式。
㈧ 如何解決python 列印中文出錯的問題
解決python列印中文出錯的方法:
如果使用的是python2的話,需要在.py文件第一行加入「#coding=utf-8」,然後使用「print("中文")」的方式列印中文
示例如下:
執行結果:
python3直接使用「print("中文")」語句就可以了
示例如下:
執行結果:
更多Python知識,請關註:Python自學網!!
㈨ python怎麼輸出中文
打開Python編譯器,在代碼的第一行設置編碼格式,加入#-*-coding:utf-8-*-即可。
相關推薦:《Python基礎教程》
如下:
㈩ python 無法顯示漢字
實際上,這段代碼所出現的問題和cPickle模塊沒什麼關系。而是Python 2顯示中文「亂碼」的問題。
Python 2中,str是8-bit string sequence(有點像Python 3中的bytes)。而Python 3中str就相當於Python 2中的unicode。
所以,
>>>a='上海'
>>>repr(a)
"'\xc9\xcf\xba\xa3'"
>>>a#a中存儲的8位元組轉義字元序列
'xc9xcfxbaxa3'
>>>printa#輸出a,在此過程中,會對a進行解碼操作,然後輸出
上海
上例中,可以看到:
a = '上海'
a中實際存儲的是:
'xc9xcfxbaxa3'
這樣一個位元組序列。它實際上是對'上海'這個unicode字元串按gbk/cp936/gb18030編碼得到的(和簡體中文Windows操作系統的默認編碼有關)。
給你推薦一篇博客:
http://blog.csdn.net/kiki113/article/details/4062063
下面是我寫的示例:
#_*_coding:gbk_*_
#TestwithPython2.7,Python3.3onWindowsXP
try:
importcPickleasp
except:
importpickleasp
address_file='address.txt'
classHuman(object):
def__init__(self,address):
self.address=address
deftxl(self):
af={'address':self.address}
print(af)
print(af['address'])
f=open(address_file,'wb')#Inpython3,usebinarymode.
#Inpython2.7,defaultprotocolis0.
#However,itis3inpython3.3.
p.mp(af,f,0)
f.close()
address='上海'
print(address)
dq=Human(address)
dq.txl()
af=open(address_file,'rb')#
print(p.load(af))
af.close()
"""
Output
----------------------------------------
Python2.7.6:
1.#-*-coding:utf-8-*-
涓婃搗
{'address':'xe4xb8x8axe6xb5xb7'}
涓婃搗
{'address':'xe4xb8x8axe6xb5xb7'}
2.#-*-coding:gbk-*-or#_*_coding:cp936_*_
上海
{'address':'xc9xcfxbaxa3'}
上海
{'address':'xc9xcfxbaxa3'}
Python3.3.3:
上海
{'address':'上海'}
上海
{'address':'上海'}
------------------------------------------
InPython3.3.3:
>>>'上海'.encode('utf-8')
b'xe4xb8x8axe6xb5xb7'
>>>_.decode('cp936')
'涓婃搗'
"""
從這個示例中可以看出,雖然把字典整個print出來不能正常解析address中的內容:
>>>addr={'addr':'上海'}
>>>addr
{'addr':'xc9xcfxbaxa3'}
>>>printaddr
{'addr':'xc9xcfxbaxa3'}
但是單獨列印:
>>>addr['addr']
'xc9xcfxbaxa3'
>>>printaddr['addr']#print輸出之前隱含了編碼解碼操作,但為何列印整個字典時輸出不正常尚待研究
上海
一切OK。
所以,如果真的用Python 2的話,對於該問題可以考慮手工負責編碼、解碼操作(如果使用print單獨列印地址信息,就不用這么麻煩了,因為這些事它幫你做了)。用Python3,就沒這么多問題了。
最後補充一點,pickle模塊只是提供了一種序列化Python對象的方法。所以序列化生成的文件中和想像的不一樣也不足為奇。正如自由de王國所說的,只要序列化後還能夠反序列化成功就行了。實際上,當protocol不是0的情況下,序列化生成的文件是二進制格式的,根本沒法用記事本直接看。