pythongbk
『壹』 python utf8 gbk 編碼問題
你是不是想在python里把中文變成鏈接中%E5%BE%85這種形式?直接用urllib.urlencode({'word':'中文'})方法
而顯示\xe5\xbe\x85\是因為你沒有使用read()方法,加上後變成:'待解析網頁'.decode('gbk').encode('utf-8').read(),就是你熟悉的中文了。
不過,'待解析網頁'.decode('gbk').encode('utf-8')這句我要吐槽一下,網頁明顯是utf-8編碼,你在文件開頭聲明utf-8編碼就可以了,這一句是多餘的。在這基礎上讀取網頁直接用 '待解析網頁'.read()
『貳』 word文檔出現python gbk編碼怎麼解決
是因為python實現爬蟲遇到編碼問題:error:UnicodeEncodeError: 'gbk' codec can't encode character 'xXX' in position XX。具體解決辦法:
改變標准輸出,添加代碼。
『叄』 python 讀取gbk文件 如何列印出中文
$python3
Python3.2.3(default,Feb272014,21:33:50)
[GCC4.6.3]onlinux2
Type"help","right","credits"or"license"formoreinformation.
>>>importcodecs
>>>withcodecs.open("test.txt",'r','gbk')ashandle:
...forlninhandle:
...print(ln)
...
中國
>>>withopen("test.txt",'rb')ashandle:
...ch_str=handle.read()
...
>>>ch_str
b'xd6xd0xb9xfa'
>>>print(ch_str.decode("gbk"))
中國
>>>
『肆』 python中#coding:gbk有什麼用
它是一種編碼格式,簡單說明是:文件說明指令來確定不同的環境進行不同的解析,與代碼有關,但與代碼的內容無直接關聯。
其中編碼格式有多種,例如常用的還有:UTF-8
GBK即「國標」、「擴展」漢語拼音的第一個字母,英文名稱:Chinese Internal Code Specification。GBK是漢字編碼標准之一,中華人民共和國全國信息技術標准化技術委員會1995年12月1日制訂,國家技術監督局標准化司、電子工業部科技與質量監督司1995年12月15日聯合以技監標函1995 229號文件的形式,將它確定為技術規范指導性文件。
俗說的話,編碼格式指定不明確的話,一般可能會有亂碼出現。
『伍』 Python處理不同編碼utf8和gbk的問題
有。
使用chardet庫。它會去猜測文本文件的編碼,並返回形如:
編碼類型:utf-8
置信度:0.9
這樣的結果,也就是說chardet斷定該文件有90%的可能性是utf-8編碼的。
不過chardet的缺陷就是,它不能完全100%確定文件的編碼類型。
目前我的做法是,如果置信度超過0.95,那麼就認定chardet的判斷結果是正確的。否則,再加上一些人機交互操作進行判斷。
目前,chardet庫官網提供的版本只適用於Python 2,如果您使用的是Python 3.x,我可以另外上傳一個。
『陸』 python write 寫入為什麼會報這個錯'gbk'codec can't encode character \xbb'i
使用Python寫文件的時候,或者將網路數據流寫入到本地文件的時候,大部分情況下會遇到:UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position ... 這個問題。 網路上有很多類似的文件講述如何解決這個問題,但是無非就是encode,decode相關的,這是導致該問題出現的真正原因嗎?不是的。 很多時候,我們使用了decode和encode,試遍了各種編碼,utf8,utf-8,gbk,gb2312等等,該有的編碼都試遍了,可是編譯的時候仍然出現: UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position XXX。 崩潰了。
在windows下面編寫python腳本,編碼問題很嚴重。
將網路數據流寫入文件時時,我們會遇到幾個編碼:
1: #encoding='XXX' 這里(也就是python文件第一行的內容)的編碼是指該python腳本文件本身的編碼,無關緊要。只要XXX和文件本身的編碼相同就行了。 比如notepad++ "格式"菜單裡面里可以設置各種編碼,這時需要保證該菜單里設置的編碼和encoding XXX相同就行了,不同的話會報錯
2:網路數據流的編碼 比如獲取網頁,那麼網路數據流的編碼就是網頁的編碼。需要使用decode解碼成unicode編碼。
3:目標文件的編碼 要將網路數據流的編碼寫入到新文件,那麼我么需要指定新文件的編碼。寫文件代碼如:
復制代碼代碼如下:
f.write(txt)
,那麼txt是一個字元串,它是通過decode解碼過的字元串。關鍵點就要來了:目標文件的編碼是導致標題所指問題的罪魁禍首。如果我們打開一個文件:
復制代碼代碼如下:
f = open("out.html","w")
,在windows下面,新文件的默認編碼是gbk,這樣的話,python解釋器會用gbk編碼去解析我們的網路數據流txt,然而txt此時已經是decode過的unicode編碼,這樣的話就會導致解析不了,出現上述問題。 解決的辦法就是,改變目標文件的編碼:
復制代碼代碼如下:
f = open("out.html","w",encoding='utf-8')
『柒』 Python2.7為什麼Utf-8到GBK會變成亂碼
程序沒縮進,看著費勁!
#coding=utf-8
defrespeak():
cText=u'中文'#pyperclip.paste()
print(cText)
printrepr(cText)
print(' Afterencode:')
gbk_text=cText.encode('gbk')
print(gbk_text)
printrepr(gbk_text)
print(' Afterdecode:')
real_text=gbk_text.decode('gbk')
print(real_text)
printrepr(real_text)
if__name__=='__main__':
respeak()
[willie@localhost pys]$ python2.7 speak.py
中文
u'u4e26587'
After encode:
���
'xd6xd0xcexc4'
After decode:
中文
u'u4e26587'
『捌』 python 判斷一個字元能否用gbk和utf8編碼
使用chardet庫。它會去猜測文本文件的編碼,並返回形如:
編碼類型:utf-8
置信度:0.9
這樣的結果,也就是說chardet斷定該文件有90%的可能性是utf-8編碼的。
不過chardet的缺陷就是,它不能完全100%確定文件的編碼類型。
目前我的做法是,如果置信度超過0.95,那麼就認定chardet的判斷結果是正確的。否則,再加上一些人機交互操作進行判斷。
目前,chardet庫官網提供的版本只適用於Python 2,如果您使用的是Python 3.x,我可以另外上傳一個。
『玖』 python 寫文件怎麼寫gbk編碼的文件
open('文件名','wt',encoding='gbk')
用這樣就可以了,加一個encoding參數就行了
『拾』 python gbk 編碼:'gbk'codec can't decode byte 0x81 in position 18
「xxx」.decode('gbk')就可以了。你的可以是 eachline.decode('gbk')
不過word文檔是有結構的二進制文件,並非文本文件,最好用com介面操縱,你這種處理方法是錯誤的