導航:首頁 > 編程語言 > python運行顯示不了中文

python運行顯示不了中文

發布時間:2022-12-29 02:09:47

1. 請問,python打開中文字元文件,但顯示不出中文怎麼辦

一般是編碼格式的問題,python內部默認的編碼格式是utf-8,常見的文本編碼格式是utf-8,gbk。編碼格式不不一致就會亂碼。可以在代碼前面申明編碼格式。

2. 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的情況下,序列化生成的文件是二進制格式的,根本沒法用記事本直接看。

3. python3不能使用中文怎麼辦

Python3對中文的支持非常全面。在Python中,源文件默認使用的是UTF-8編碼,這樣一來,不單可方便地在源代碼的字元串中使用中
文,而且變數名也可以使用中文。
2、在Python3中不需要來回的編碼和解碼,直接使用print函數即可輸出變數的內容
3、在Python3中,字元串對象沒有decode和encode方法。
推薦學習《python教程》。

4. python IDLE以及控制台中無法正確顯示中文

Python顯示中文的問題很頭大,原因在於Windows中文版的編碼格式是GBK,因此直接顯示中文會顯示亂碼的問題。
因此我們可以在開頭加上#_*_encoding:<>_*_ <>可以代筆:UTF8或cp936等編碼。

5. 為什麼使用python編程不能顯示中文

可以的呀,記得在py文件的頭上加上#coding=utf-8
使用中文字元串的時候字元串用unicode對象,即u』中文字元串『

6. 請問python2.7無法正常顯示中文(windos7+python2.7.9+pycharm2.7.3),怎麼解決

查看你爬取的地址頁面的編碼方式,比如是gb2312,那麼,解碼tags1如下:
tags1 = unicode(tags1,'gb2312')

7. Python中加了# -*- coding: utf-8 -*-,還是不能顯示中文

應該是windows系統識別編碼的問題。
將腳本文件的編碼 設置成 ANSI看看。

看你的顯示應該是learn python for hard way這本書唄,這書上都是py2的,你下一個py3版本,這種問題一般就不會出現了。

8. python 部分中文顯示亂碼

wb讀取pdf?二進制讀取????

換成w+


提示的錯誤時名稱錯誤,或者打開模式wb錯誤。

  1. 看一下名稱是否出錯,例如多了空格等

  2. 看一下計算機pdf和其他文件內部的區別,例如是否有圖片等等,導致

9. 我剛開始學習python,最近運行一個練習程序,運行後的後兩行突然不顯示中文(之前運行這個程序顯示中文)

一般在文件最上面添加下面的語句就可以了
# -*- coding: utf-8 -*-

10. python為什麼無法顯示中文

你的版本是Python2 Python2 代碼上面要加上

#-*-coding:utf-8-*-
閱讀全文

與python運行顯示不了中文相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:962
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:144
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:736
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:484
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:381
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:892
app轉賬是什麼 瀏覽:163