python3預設情況下,是通過unicode直接編碼操作的,對於字串、特殊字元、數字的支援都是一致的,字串的編碼和解碼操作方式非常簡潔
s = 『abc』宣告了乙個字串,這個字串就是構造了乙個str物件,預設情況下就是通過unicode直接編碼的字元
如果將字元轉換成位元組,進行編碼操作:
s.encode(「utf-8」)如果將位元組轉換成字元,進行編碼操作:s.decode(「utf-8」)s = 「中文」
x = s.encode(「utf-8」)
xb』\xe4\xb8\xad\xe6\x96\x87』
xpython2中,預設情況下是通過ascii編碼進行操作的b』\xe4\xb8\xad\xe6\x96\x87』
x.decode(「utf-8」)
『中文』
建立的字串s=」abc」是str型別的,在python2中是bytes位元組型別的
預設情況下:
s = 「中文」如果在宣告的時候就需要乙個中文字串,在字串的前面新增乙個u字元,表示是通過unicode編碼的s『\xd6\xd0\xce\xc4』
s = u』中文』如果是預設位元組形式的中文字串,要得到原本的中文形式,需要decode()函式操作su』\u4e2d\u6587』
s = 「中文」如果要將乙個unicode編碼的字串轉換成ascii編碼進行後續的操作s『\xd6\xd0\xce\xc4』
x = s.decode(「gbk」)
xu』\u4e2d\u6587』
?為什麼要轉換成ascii編碼?因為python內建的大量模組,並沒有提供中文支援,呼叫內建模組的函式操作時,如果出現了非ascii編碼,就會出現ascii編碼不支援的錯誤
unicodeencodeerror: 『ascii』 codec can』t encode characters
將unicode字串,轉換成bytes型別的str字串
轉換方式:
s = u"中文"python2中,將乙個字串確定型別[str|unicode],然後根據實際的型別進行操作su』\u4e2d\u6587』
s.encode(「gbk」)
x = s.encode(「gbk」)
x『\xd6\xd0\xce\xc4』
如果是用於控制台等等展示操作(給人看):字元的方式展示
如果是用於python2內建模組進行使用(python2使用):位元組的方式使用
警告:python2中的str型別,預設就有乙個encode()函式,但是這個函式只是在定義時為了物件操作的完整性出現的,使用會直接報錯[預計-保留函式]python2中的unicode型別,預設有乙個decode()函式,同樣不要去使用!
###如何將u"\\u4eba\\u9759\\u65f6"型別的字串變為u"\u4eba\u9759\u65f6"的資料
例:>>> s =u』\\u4eba\\u9759\\u65f6』
>>>s.decode(「unicode-escape」)
>>>u』\u4eba\u9759\u65f6』
###將』\u4e2d\u56fd』直接轉換成漢字
>>>s=』』\u4e2d\u56fd"
>>>print(s.decode(『unicode-escape』))
結果:中國n
python3和python2的區別
1.效能 py3.0執行 pystone benchmark的速度比py2.5慢30 guido認為py3.0有極大的優化空間,在字串和整形操作上可 以取得很好的優化結果。py3.1效能比py2.5慢15 還有很大的提公升空間。2.編碼 py3.x原始碼檔案預設使用utf 8編碼,這就使得以下 是合...
Python2和Python3的比較
python2 python3 print fish print fish unicode 是單獨的 unicode utf 8 字串 b b china byte 和 bytearrays type b type bytes s b.decode 轉化成 string 型別b1 s encode ...
python3和python2的區別
這個星期開始學習python了,因為看的書都是基於python2.x,而且我安裝的是python3.1,所以書上寫的地方好多都不適用於python3.1,特意在google上search了一下3.x和2.x的區別。特此在自己的空間中記錄一下,以備以後查詢方便,也可以分享給想學習python的frie...