python中編碼unicode和utf 8

2021-08-02 02:03:30 字數 962 閱讀 8363

在python中的字串記憶體中是用unicode進行編碼

python2

>>> s="我愛你python"

>>> su=u"我愛你python"

>>> s.encode("utf-8")

traceback (most recent call last):

file

"", line 1, in

unicodedecodeerror: 'ascii' codec can't decode byte 0xce

in position 0: ordinal

notin

range(128)

>>> s.decode("gb2312").encode("utf-8")

'\xe6\x88\x91\xe7\x88\xb1\xe4\xbd\xa0python'

原因是s字串在window中預設是gb2312,要把它decode成unicode編碼,然後encode成utf-8,在encode的時候一定要保證該字串是unicode,如果直接呼叫encode會首先預設呼叫系統的編碼進行decode系統預設編碼

>>> 

import sys

>>> sys.getdefaultencoding()

'ascii'

在python3中

>>> s="我愛你python"

>>> s.encode("utf-8")

b'\xe6\x88\x91\xe7\x88\xb1\xe4\xbd

\xa0python'

預設s字串是unicode

python中string和Unicode的區別

首先要弄清楚的是,在python裡,string object和unicode object是兩種不同的型別。string object是由characters組成的sequence,而unicode object是unicode code units組成的sequence。string裡的char...

python中的正規表示式與unicode

正規表示式作為一種最常用的工具,在平常的工作中使用的非常普遍,在python中是由re庫提供這個功能,除此之外還有regex庫提供額外的功能。在一般的正規表示式介紹中都是以ascii為代表來介紹的,但是作為乙個中國的程式設計師,所遇到的乙個最基本的問題就是字元編碼了。所以這裡說下如何在python中...

python中編碼轉換

當python中間處理非ascii編碼時,經常會出現如下錯誤 unicodedecodeerror ascii codec can t decode byte 0x?in position 1 ordinal not in range 128 0x?是超出128的數字,python在預設的情況下認為...