python 字元編碼

2022-03-25 03:49:50 字數 1973 閱讀 8032

python 中英文混合時編碼很重要,處理方法如下:

>>># coding=utf-8

>>>'abc中文'.encode('gb18030')>>>'abc中文'.encode('gbk')

>>>'abc中文'.decode('gbk')

>>>unicode('abc中文')

>>>unicode ('abc中文', 'utf-8')

一、python中與編碼有關的函式

1、encode:由unicode編碼轉換為指定的其他編碼。如:txt.encode("gb2312")則txt的表示為unicode->gb2312;txt.encode("utf-8")為unicode->utf-8轉換。

2、decode:由指定的其他編碼轉換為unicode編碼。如:txt.decode("gb2312")則txt的表示為gb2312->unicode;txt.decode("utf-8")為utf-8->unicode轉換。

3、unicode:與decode相同。如:unicode(txt,"gb2312") 則txt的表示為gb2312->unicode轉換。

當然了unicode是不能和ascii之間轉換的

所以不難理解,content1實際是utf8格式的編碼,轉換為unicode之後就正確顯示了,但是為什麼直接列印utf8格式的字串卻不行呢?我也不知道哦,那麼我們再來試試下面這種方式

python編碼處理:unicode位元組串轉成中文 各種字串舉例說明

編碼問題一直是很頭痛的問題:

當字串是:'\u4e2d\u56fd'

>>>s=['\u4e2d\u56fd','\u6e05\u534e\u5927\u5b66']

>>>str=s[0].decode('unicode_escape')  #.encode("euc_kr")

>>>print str

中國當字串是:' 東亞學團一中'

>>>print unichr(19996)

東ord()支援unicode,可以顯示特定字元的unicode號碼,如:

>>>print ord('a')65

只要和unicode連線,就會產生unicode字串。如:

>>> 'help''help'>>> 'help,' + u'python' u'help,python'

對於ascii(7位)相容的字串,可和內建的str()函式把unicode字串轉換成ascii字串。如:

>>> str(u'hello world')'hello world'

對幾個概念的理解:

ascii碼:    用資料字 對應 相應的字元

而中文 就是區位碼對應漢字    如:「好」 的ascii碼為: 22909

unicode 編碼 每個國家分一塊。   它有utf-8、utf-16、utf-32等形式

中文範圍 4e00-9fbf:  這個範圍內有 gbk,gb2312,

utf-8是基於unicode的 國際化的場合適合使用

gb2312和gb2312都是國標碼 出現的較早 主要用於編譯碼常用漢字  

url中替換百分號

>>> import urllib

>>>urllib.quote('中文')

'%e4%b8%ad%e6%96%87'

>>>urllib.unquote('%e4%b8%ad%e6%96%87')

'\xe4\xb8\xad\xe6\x96\x87'

>>> print urllib.unquote('%e4%b8%ad%e6%96%87')中文 

如果不行,可能要轉換成unicode先

s = urllib.unquote('%e4%b8%ad%e6%96%87')

uni = str.decode(s)

os.chdir(uni)

python字元編碼

ascii 碼是乙個位元組,通常只能顯示英文本母和數字。unicode碼為了顯示多種語言產生,但是要占用兩個位元組,顯示文字要占用大量空間 utf 8 為了節約空間而生,英文本元只用乙個位元組儲存,中文字元需要三個位元組 character ascii unicode utf 8 a01000000...

python字元編碼

列印python檔案編碼 import sys print sys.getdefaultencoding 中文的乙個字元unicode占用2個位元組。對在於ascii字元占用1個位元組 utf 8中 中文字元佔3個位元組,英文本元占用1個位元組 編碼和轉碼 unicode不能再解碼了 它是基層的 u...

Python字元編碼

在用python程式設計中,字串有兩種表示方法 string 和 u string 為什麼字串要是用這兩種表達方式。不是僅僅用前一種呢?使用type 函式檢視,它們各自是str物件和unicode物件。這兩個物件有什麼差別嗎?還有經經常使用到的encode 和decode 又是幹什麼的呢?都說pyt...