python ghost 編碼問題

2021-09-20 05:19:05 字數 2294 閱讀 3284

參考

這一篇總結的標題之所以是「ghost」鬼魂,是因為這個問題就像「ghost」一樣,隨時會出現在我的**,我的程式中,時不時會冒出來,然後需要解決。

unicodedecodeerror: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte

unicodedecodeerror: 'gbk' codec can't decode byte 0x80 in position 205: illegal multibyte sequence"

首先編碼有很多種例如:

雖然每個國家都有自己的編碼,但是這種編碼會有侷限性!!!!就是無法對應其他國家的字元。

unicode編碼出現,unicode 2-4位元組 已經收錄136690個字元,並還在一直不斷擴張中...

unicode 起到了2個作用:

雖然unicode解決了字元和二進位制的對應關係,但是使用unicode表示乙個字元,太浪費空間!!!!例如:利用unicode表示「python」需要12個位元組才能表示,比原來ascii表示增加了1倍。

為了解決儲存和網路傳輸的問題,出現了unicode transformation format,學術名utf,即:對unicode中的進行轉換,以便於在儲存和網路傳輸時可以節省空間!

utf-8: 使用1、2、3、4個位元組表示所有字元;優先使用1個字元、無法滿足則使增加乙個位元組,最多4個位元組。英文佔1個位元組、歐洲語系佔2個、東亞佔3個,其它及特殊字元佔4個

utf-16: 使用2、4個位元組表示所有字元;優先使用2個位元組,否則使用4個位元組表示。

utf-32: 使用4個位元組表示所有字元;

總結:utf 是為unicode編碼 設計 的一種 在儲存 和傳輸時節省空間的編碼方案。

字元在硬碟上的儲存

無論以什麼編碼在記憶體裡顯示字元,存到硬碟上都是2進製。

ascii編碼(美國):

l 0b1101100

o 0b1101111

v 0b1110110

e 0b1100101

gbk編碼(中國):

老 0b11000000 0b11001111

男 0b11000100 0b11010000

孩 0b10111010 0b10100010

shift_jis編碼(日本):

私 0b10001110 0b10000100

は 0b10000010 0b11001101

ks_c_5601-1987編碼(南韓):

나 0b10110011 0b10101010

는 0b10110100 0b11000010

tis-620編碼(泰國):

ฉัน 0b10101001 0b11010001 0b10111001

要注意的是,存到硬碟上時是以何種編碼存的,再從硬碟上讀出來時,就必須以何種編碼讀

編碼的轉換

請問:中國的電腦上有乙個檔案用的gbk 編碼,而不是utf-8,要放在歪果仁的電腦上(沒有gbk編碼)怎麼辦?

兩個對策:

unicode其中乙個功能是其包含了跟全球所有國家編碼的對映關係,意思就是,你寫的是gbk的「路飛學城」,但是unicode能自動知道它在unicode中的「路飛學城」的編碼是什麼

python3的執行過程

python3 執行**的過程

utf-8 --> decode 解碼 --> unicode

unicode --> encode 編碼 --> gbk / utf-8

#在python2中

#_*_coding:utf-8_*_

s = '路飛學城'

print s

s2 = s.decode('utf-8')

print s2

print type(s2)

輸出:

亂碼 

路飛學城

unicode

# 在python2中

#_*_coding:utf-8_*_

s = '路飛學城'

print s

s2 = s.decode('utf-8')

s3 = s2.encode('gbk')

print s3

print type(s3)

輸出:

亂碼 

路飛學城

str

所以

python Ghost 如何新增cookies

我查了很多資料,都是說用以下的方法新增 然後和ghost關聯就沒有了 其實也很簡單,只是這方面的資料很受,我查閱了ghost的api,才發現也乙個很有用的方法 load cookies cookie storage,keep old false load from cookielib s cooki...

編碼方式,編碼之問題

編碼方式對於程式的重要不言而喻,若是不能徹底理解編碼方式,則在許多的地方都會困擾著你。對於編碼方式的困擾,在剛學習jsp時出現的亂碼問題到現在一年有餘,一直在模糊狀態,如今,也不知道是不是真的徹底明白,只是有一點小小的收穫,期待以後的徹底理解,在此先記錄一下點點滴滴。從開始的亂碼起。首先是jsp中的...

mysql中的編碼問題 mysql編碼問題總結

網上查了一些mysql編碼相關的資料,在這裡整理下,不對的地方歡迎各位批評指正。character set server 預設的內部操作字符集 character set connection 連線層字符集 character set results 查詢結果字符集 character set da...