最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python3字符串encode與decode的講解

 更新時間:2019年04月02日 15:00:07   作者:西歐伯爵  
今天小編就為大家分享一篇關(guān)于Python3字符串encode與decode的講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

大家好,很久沒更新了,也是年底了最近比較忙,同時也在研究python的其他內(nèi)容,畢竟是python小白,自學(xué)道路艱難。

好了今天和大家一起探討下python3編碼過程中對的一些轉(zhuǎn)碼事宜。

python3中對文本和二進(jìn)制做了比較清晰的區(qū)分。python3默認(rèn)編碼為unicode,由str類型進(jìn)行表示。二進(jìn)制數(shù)據(jù)使用byte類型表示,所以不會將str和byte混在一起。在實(shí)際應(yīng)用中我們經(jīng)常需要將兩者進(jìn)行互轉(zhuǎn)

有幾點(diǎn)需要注意:

1:字符串通過編碼轉(zhuǎn)換為字節(jié)碼,字節(jié)碼通過解碼轉(zhuǎn)換為字符串

str--->(encode)--->bytes,bytes--->(decode)--->str

import sys
print('目前系統(tǒng)的編碼為:',sys.getdefaultencoding())
name='小明'
print(type(name))#首先我們來打印下轉(zhuǎn)碼前的name類型,因?yàn)樗莝tr,所以可以通過encode來進(jìn)行編碼
name1=name.encode('utf-8')
print(name1)

輸出為:

目前系統(tǒng)的編碼為: utf-8
<class 'str'>
b'\xe5\xb0\x8f\xe6\x98\x8e'

這里大家或許會有一個疑問,編碼utf-8為什么不是decode轉(zhuǎn)成unicode

因?yàn)殚_頭跟大家講過,python3默認(rèn)就是unicode,utf-8可以看成是unicode的一個擴(kuò)展集,所以其實(shí)name本身是一個unicode編碼的,所以可以通過encode編碼成utf-8,這里可以試下,如果認(rèn)為name應(yīng)該是utf-8,那我們來試下encode會不會報錯

name1=name.decode('utf-8')
print(name1)
這里會報如下錯誤:
AttributeError: 'str' object has no attribute 'decode'

所以,對于python3默認(rèn)的就是unicode編碼。

既然已經(jīng)encode成utf-8了,那我們來看下decode會出現(xiàn)什么樣的結(jié)果

name2=name1.decode('utf-8')
print(type(name2))
print(name2)
這里要跟大家說下,decode()括號中為什么寫utf-8,而不寫gbk,可以這樣理解,因?yàn)橐獯a,你總得告訴它我是什么編碼的吧,比如我原先是utf-8格式的編碼,現(xiàn)在要解碼,但是如果冒充utf-8,說自己是gbk,那就會出現(xiàn)亂碼,見下:
<class 'str'>
<class 'str'>
灝忔槑

另外如果大家encode()和decode()括號中不寫編碼格式,系統(tǒng)會默認(rèn)為utf-8,大家可以試下。

2:utf-8編碼格式和gbk編碼格式互轉(zhuǎn)

既然知道utf-8編碼與解碼的規(guī)律,那我們來試試它與gbk之間的火花。

name1=name.encode('utf-8')
name2=name1.decode('utf-8')
name3=name2.encode('gbk')
name4=name3.decode('gbk')
print(type(name3))
print(name3)
下面是name3的結(jié)果
<class 'bytes'>
b'\xd0\xa1\xc3\xf7'
下面是name4的結(jié)果
<class 'str'>
小明

從上面可以卡出name2本來是解碼成utf-8的,后來有隊name2進(jìn)行了gbk編碼,接著又再次對name3進(jìn)行g(shù)bk解碼

所以不難看出,其實(shí)utf-8和gbk之間都是通過unicode來做一個中間轉(zhuǎn)換的操作

在例子中

name2=name1.decode('utf-8')
name3=name2.encode('gbk')

這兩步的操作就是通過unicode來轉(zhuǎn)的

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

相關(guān)文章

  • python友情鏈接檢查方法

    python友情鏈接檢查方法

    這篇文章主要介紹了python友情鏈接檢查方法,涉及Python讀取txt文件進(jìn)行友鏈查詢的相關(guān)技巧,非常簡單實(shí)用,需要的朋友可以參考下
    2015-07-07
  • PyTorch中view()與?reshape()的區(qū)別詳析

    PyTorch中view()與?reshape()的區(qū)別詳析

    這篇文章主要給大家介紹了關(guān)于PyTorch中view()?與?reshape()?區(qū)別的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2022-01-01
  • 非常詳細(xì)的Django連接mysql數(shù)據(jù)庫步驟記錄

    非常詳細(xì)的Django連接mysql數(shù)據(jù)庫步驟記錄

    我的Mysql中已經(jīng)有了項(xiàng)目需要使用的相關(guān)數(shù)據(jù)庫,現(xiàn)在需要通過django來獲取Mysql里的數(shù)據(jù)并使用,下面這篇文章主要給大家介紹了關(guān)于非常詳細(xì)的Django連接mysql數(shù)據(jù)庫步驟,需要的朋友可以參考下
    2022-10-10
  • Python基礎(chǔ)之hashlib模塊詳解

    Python基礎(chǔ)之hashlib模塊詳解

    這篇文章主要介紹了Python基礎(chǔ)之hashlib模塊詳解,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)python基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-05-05
  • python讀取一個大于10G的txt文件的方法

    python讀取一個大于10G的txt文件的方法

    讀取文件是一個常用的功能,那么如何用python 讀取一個大于10G 的文件,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • python中Flask?Web?表單的使用方法介紹

    python中Flask?Web?表單的使用方法介紹

    這篇文章主要介紹了python中Flask?Web?表單的使用方法介紹,表單的操作是Web程序開發(fā)中最核心的模塊之一,絕大多數(shù)的動態(tài)交互功能都是通過表單的形式實(shí)現(xiàn)的。更多介紹需要的小伙伴可以參考下面文章內(nèi)容
    2022-05-05
  • python實(shí)現(xiàn)圖片九宮格分割的示例

    python實(shí)現(xiàn)圖片九宮格分割的示例

    這篇文章主要介紹了python實(shí)現(xiàn)圖片九宮格分割的示例,幫助大家更好的利用python處理圖片,感興趣的朋友可以了解下
    2021-04-04
  • 哈工大自然語言處理工具箱之ltp在windows10下的安裝使用教程

    哈工大自然語言處理工具箱之ltp在windows10下的安裝使用教程

    這篇文章主要介紹了哈工大自然語言處理工具箱之ltp在windows10下的安裝使用教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • python實(shí)現(xiàn)AES加密和解密

    python實(shí)現(xiàn)AES加密和解密

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)AES加密和解密,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • 解決python3中解壓zip文件是文件名亂碼的問題

    解決python3中解壓zip文件是文件名亂碼的問題

    下面小編就為大家分享一篇解決python3中解壓zip文件是文件名亂碼的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03

最新評論

上林县| 张掖市| 日喀则市| 公安县| 巴彦县| 洮南市| 乌鲁木齐县| 汤原县| 西宁市| 景德镇市| 乌兰察布市| 仪陇县| 南通市| 南华县| 胶州市| 全州县| 忻城县| 收藏| 上高县| 康乐县| 扎兰屯市| 兰考县| 麟游县| 张掖市| 利川市| 临武县| 吉安县| 新郑市| 当阳市| 黑龙江省| 黎城县| 惠州市| 湖南省| 开远市| 巴塘县| 余干县| 民乐县| 达拉特旗| 余江县| 镇宁| 朝阳县|