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

歡迎訪問 生活随笔!

生活随笔

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

python

python的编码 encode

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

?

Python3 encode()方法


描述

encode() 方法以指定的編碼格式編碼字符串。errors參數可以指定不同的錯誤處理方案。

語法

encode()方法語法:

str.encode(encoding='UTF-8',errors='strict')

參數

  • encoding -- 要使用的編碼,如: UTF-8。
  • errors -- 設置不同錯誤的處理方案。默認為 'strict',意為編碼錯誤引起一個UnicodeError。 其他可能得值有 'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' 以及通過 codecs.register_error() 注冊的任何值。

返回值

該方法返回編碼后的字符串,它是一個 bytes 對象。

實例

以下實例展示了encode()方法的實例:

實例(Python 3.0+)

#!/usr/bin/python3 str = "菜鳥教程"; str_utf8 = str.encode("UTF-8") str_gbk = str.encode("GBK") print(str) print("UTF-8 編碼:", str_utf8) print("GBK 編碼:", str_gbk) print("UTF-8 解碼:", str_utf8.decode('UTF-8','strict')) print("GBK 解碼:", str_gbk.decode('GBK','strict'))

以上實例輸出結果如下:

菜鳥教程 UTF-8 編碼: b'\xe8\x8f\x9c\xe9\xb8\x9f\xe6\x95\x99\xe7\xa8\x8b' GBK 編碼: b'\xb2\xcb\xc4\xf1\xbd\xcc\xb3\xcc' UTF-8 解碼: 菜鳥教程 GBK 解碼: 菜鳥教程

python3中encode和decode跟python2還是有一定的區別的,在python3中: 

? encode(編碼):按照某種規則將“文本”轉換為“字節流”。 ?python 3中表示:unicode變成str

? ?decode(解碼):將“字節流”按照某種規則轉換成“文本”。 ? python3中表示:str變成unicode

字符串在Python內部的表示是Unicode編碼,因此在做編碼轉換時,通常需要以Unicode作為中間編碼,即先將其他編碼的字符串解碼(decode)成Unicode,再從Unicode編碼(encode)成另一種編碼。

  u代表Unicode類型,s代表str類型

  u.encode('...'):只要你填寫了正確的編碼,基本上總是能成功的。就像任何文件都可以壓縮成zip文件。

?

  u.decode('...'):沒有任何意義,因為decode是將str轉為unicode編碼,而u本身就是unicode編碼的。

?

  s.encode('...'):在python 3中,將產生一個編碼后的byte類型的字符串(這里有點像Python 2.x中的str),byte類型的字符串是支持解碼操作的。

?

  s.decode('...'):運行都會出錯。因為python 3中的str類型對象有點像Python 2中的unicode, 而decode是將str轉為unicode編碼,所以str僅有一個encode方法,調用這個方法后將產生一個編碼后的byte類型的字符。

?

按照上述規則對一般的字符編碼解碼可以基本解決,同時如果還有一些困惑可以百科一下Unicode,gbk等常用編碼格式,了解一下他們的區別和編碼原理。

python3默認編碼為unicode,由str類型進行表示。二進制數據使用byte類型表示?
字符串通過編碼轉換成字節碼,字節碼通過解碼成為字符串?
encode:str –> bytes?
decode:bytes – > str?
直接上代碼:

import sys
print("print1:",sys.getdefaultencoding())
name ="中國"
name = name.encode("utf-8")
print("print2:",type(name))
name = name.decode("utf-8")
name = name.encode("gbk")
print("print4:",type(name))
1
2
3
4
5
6
7
8
結果:?
?
分析:

python3默認的編碼是unicode,utf-8可以看做是unicode的一個擴展集。
gbk在python中可直接轉換成為utf-8,如print4所示,參考網址:?
https://www.cnblogs.com/2017Python/articles/6569750.html
字符串轉換成字節(encode):


s1 ?= "中國"
//法1:
s1 = s1.encode('utf-8')

//方2:,缺省也是可以滴
s1 = s1.encode()

//方3:
s1 = s1.encode(encoding='utf-8')

//法4:我對此語句的理解是,現在用bytes(s1,encoding='utf-8')這個方法轉換成字符節。原先是按照utf-8進行編碼,
s1 = ?bytes(s1, encoding='utf-8')

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
字節轉換成字符串(decode):

s1 = "中國"
s1 = s1.encode("utf-8")

//法1:現在的s1是字節類型
str = s1.decode('utf-8')

//法2:其中1是二進制類型,我對此語句的理解是,現在用str(bytes,encoding='utf-8')這個方法轉換成字符串。按照utf-8進行編碼,
str1 = str(s1, encoding='utf-8')


?

?

?

?

?

總結

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

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