日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python3编码问题_python3编码问题

發布時間:2023/12/19 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python3编码问题_python3编码问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python3默認編碼是unicode

而Python2是ASCII碼

Windows環境默認是gbk編碼

Python3 自動把文件編碼轉為unicode,Python2并不會自動的把文件編碼轉為unicode存在內存里。需要手動轉碼。

python3的執行過程: 解釋器找到代碼文件,把代碼字符串按文件頭定義的編碼加載到內存,轉成unicode

把代碼字符串按照語法規則進行解釋

所有的變量字符都會以unicode編碼聲明

UTF-8 --> decode 解碼 --> Unicode

Unicode --> encode 編碼 --> GBK / UTF-8 等 a = '編碼' # a是unicode類型

b = a.encode('utf-8') # b是utf-8類型

c = a.encode('gbk') #c是gbk類型

print (a , b ,c)

print (type(a),type(b),type(c))

#python3默認是unicode類型

編碼 b'\xe7\xbc\x96\xe7\xa0\x81' b'\xb1\xe0\xc2\xeb'

Decode的作用是將其他編碼的字符串轉換成unicode編碼

如str1.decode('gb2312'),表示將gb2312編碼的字符串str1轉換成unicode編碼。

Encode的作用是將unicode編碼轉換成其他編碼的字符串,

如str2.encode('gb2312'),表示將unicode編碼的字符串str2轉換成gb2312編碼。

已經知道在python3中,輸出的時候,會把str/Unicode 變成utf8的編碼;來看一下環境中的輸出編碼是什么: import sys

sys.stdout.encoding

在最新的python 3版本中,字符串的類型是str, 在內存中都是以Unicode表示,一個字符對應若干個字節;

如果要在網絡上傳輸,或者保存到磁盤上,就需要把str變為以字節為單位的bytes。

以Unicode表示的str通過encode()方法可以編碼為指定的bytes,例如: >>> 'ABC'.encode('ascii')

b'ABC'

>>> '中文'.encode('utf-8')

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

>>> '中文'.encode('ascii')

Traceback (most recent call last):

File "", line 1, in

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

在操作字符串時,我們經常遇到str和bytes的互相轉換。為了避免亂碼問題,應當始終堅持使用UTF-8編碼對str和bytes進行轉換。

總結

以上是生活随笔為你收集整理的python3编码问题_python3编码问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。