欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python中的編碼和解碼及\x和\u問題

 更新時(shí)間:2022年05月20日 11:16:12   作者:氣球會(huì)膨脹  
這篇文章主要介紹了python中的編碼和解碼及\x和\u問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

編碼和解碼及\x和\u問題

“字符在內(nèi)存里的表示是unicode,如果要存盤或者發(fā)到網(wǎng)絡(luò)就經(jīng)過utf-8,然后對(duì)端收到依次解碼。”

Python 3里面,str在內(nèi)存里是unicode表示的

‘中文’ == ‘\u4e2d\u6587’

'中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'
?'\u4e2d\u6587'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'

1個(gè)漢字用unicode表示一般是2個(gè)byte,

例如:

‘中’=\u4e2d(十六進(jìn)制寫法【即2bytes】)

'A'.encode('ascii')
>>>b'A'
('\u0041').encode('ascii')
>>>b'A'
'A'.encode('utf-8')
>>>b'A'

note: b’A’和’A’

在python 3中

b’A’是ascii編碼的01010101的字節(jié),占1個(gè)byte;

'A‘是在內(nèi)存里按unicode形式編碼的/ucc,占的是2個(gè)byte。

unicode編碼后是bytes,如果這個(gè)字節(jié)范圍不在ascii的表示范圍內(nèi),就會(huì)顯示成\x(十六進(jìn)制形式)

例如:

  • 漢字編碼成bytes,去查看這個(gè)bytes肯定只能看到\x系列,因?yàn)檫@個(gè)bytes的內(nèi)容肯定不在ascii范圍內(nèi);
  • 英文編碼成bytes可以看到對(duì)應(yīng)的英文字母,本質(zhì)上它還是沒有含義的010101的字節(jié)流而不是字符。
"abc".encode('utf-8')
b'abc'
'中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'
1個(gè)漢字,按utf-8編碼,一般是3個(gè)bytes,\xe4是十六進(jìn)制表示的1個(gè)byte。

相同的英文字符,ascii編碼和utf-8編碼的結(jié)果是一致的,因?yàn)檫@兩種編碼都使用一個(gè)byte表示一個(gè)英文字符

'abc'.encode('ascii').decode('utf-8')
'abc'

可以用一個(gè)編碼然后再另一個(gè)解碼,是可以成功還原的。但一般是不會(huì)這么做的。

ord函數(shù)獲取字符的整數(shù)表示和chr數(shù)把編碼轉(zhuǎn)換為對(duì)應(yīng)的字符

?ord('A')
65
ord('中')
20013
chr(66)
'B'
chr(25991)
'文'

對(duì)str和對(duì)bytes用len,意義是不同的。

len(str)統(tǒng)計(jì)字符數(shù),len(bytes)統(tǒng)計(jì)bytes數(shù)

>>> len('中文')
2
?len(str)統(tǒng)計(jì)字符數(shù)
>>> bt1 = '中文'.encode('gb2312')
>>> bt2 = '中文'.encode('utf-8')
>>> bt1
b'\xd6\xd0\xce\xc4'
>>> bt2
b'\xe4\xb8\xad\xe6\x96\x87'
>>> len(bt1)
4
>>> len(bt2)
6

以Unicode表示的str通過encode()方法可以編碼為指定的bytes

python解析 \x 和 \u "亂碼"

參數(shù)錯(cuò)誤

\xe5\x8f\x82\xe6\x95\xb0\xe6\x9c\x89\xe8\xaf\xaf ?

今日已經(jīng)完成過此任務(wù),請(qǐng)明日再做此任務(wù)吧!

\u4eca\u65e5\u5df2\u7ecf\u5b8c\u6210\u8fc7\u6b64\u4efb\u52a1\uff0c\u8bf7\u660e\u65e5\u518d\u505a\u6b64\u4efb\u52a1\u5427!

python2.7解析方法

>>> print(u'\xe5\x8f\x82\xe6\x95\xb0\xe6\x9c\x89\xe8\xaf\xaf ?'.encode('unicode_escape').decode('string_escape'))?
>>>print('\u4eca\u65e5\u5df2\u7ecf\u5b8c\u6210\u8fc7\u6b64\u4efb\u52a1\uff0c\u8bf7\u660e\u65e5\u518d\u505a\u6b64\u4efb\u52a1\u5427!'.decode('unicode_escape'))

python3解析方法

>>>('\xe5\x8f\x82\xe6\x95\xb0\xe6\x9c\x89\xe8\xaf\xaf ?'.encode('raw_unicode_escape')).decode()
>>>'\u4eca\u65e5\u5df2\u7ecf\u5b8c\u6210\u8fc7\u6b64\u4efb\u52a1\uff0c\u8bf7\u660e\u65e5\u518d\u505a\u6b64\u4efb\u52a1\u5427!'

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python numpy 模塊介紹

    Python numpy 模塊介紹

    這篇文章主要介紹了Python numpy 模塊,在motplotlib的學(xué)習(xí)過程中,我們使用最多的就是numpy模塊。下面我們將使用numpy進(jìn)行創(chuàng)建數(shù)組、切片、索引、廣播等功能實(shí)操,需要的朋友可以參考一下
    2022-01-01
  • python中的迭代和可迭代對(duì)象代碼示例

    python中的迭代和可迭代對(duì)象代碼示例

    這篇文章主要介紹了python中的迭代和可迭代對(duì)象代碼示例,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2017-12-12
  • Python中的yeild關(guān)鍵字提高代碼執(zhí)行效率場(chǎng)景實(shí)例探究

    Python中的yeild關(guān)鍵字提高代碼執(zhí)行效率場(chǎng)景實(shí)例探究

    在Python編程語言中,yeild是一個(gè)非常實(shí)用的關(guān)鍵字,它不僅可以幫助你編寫更加簡(jiǎn)潔的代碼,還可以提高代碼的執(zhí)行效率,本文將詳細(xì)介紹yeild在Python中的使用方法,并通過示例代碼進(jìn)行演示,讓我們一起來探索這個(gè)強(qiáng)大的關(guān)鍵字吧
    2024-01-01
  • python虛擬環(huán)境virtualenv的安裝與使用

    python虛擬環(huán)境virtualenv的安裝與使用

    virtualenv用于創(chuàng)建獨(dú)立的Python環(huán)境,多個(gè)Python相互獨(dú)立,互不影響,它能夠:1. 在沒有權(quán)限的情況下安裝新套件 2. 不同應(yīng)用可以使用不同的套件版本 3. 套件升級(jí)不影響其他應(yīng)用
    2017-09-09
  • python框架django基礎(chǔ)指南

    python框架django基礎(chǔ)指南

    本文給大家匯總介紹了下python的MVC框架django的一些基礎(chǔ)知識(shí),非常的簡(jiǎn)單實(shí)用,希望對(duì)大家學(xué)習(xí)django能夠有所幫助。
    2016-09-09
  • Python Pymysql實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)的示例

    Python Pymysql實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)的示例

    本文主要介紹了Python Pymysql實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)的示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • 解析Python中while true的使用

    解析Python中while true的使用

    這篇文章主要介紹了解析Python中while true的使用,while true即用來制造一個(gè)無限循環(huán),需要的朋友可以參考下
    2015-10-10
  • 關(guān)于spring的@Bean注解放入引用Bean中初始化失敗分析

    關(guān)于spring的@Bean注解放入引用Bean中初始化失敗分析

    這篇文章主要介紹了關(guān)于spring的@Bean注解放入引用Bean中初始化失敗分析,Spring的@Bean注解用于告訴方法,產(chǎn)生一個(gè)Bean對(duì)象,然后這個(gè)Bean對(duì)象交給Spring管理,產(chǎn)生這個(gè)Bean對(duì)象的方法Spring只會(huì)調(diào)用一次,需要的朋友可以參考下
    2023-07-07
  • python模塊內(nèi)置屬性概念及實(shí)例

    python模塊內(nèi)置屬性概念及實(shí)例

    在本篇內(nèi)容里小編給大家分享的是一篇關(guān)于python模塊內(nèi)置屬性概念及實(shí)例內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2021-02-02
  • Python中?whl包、tar.gz包的區(qū)別詳解

    Python中?whl包、tar.gz包的區(qū)別詳解

    whl格式本質(zhì)上是一個(gè)壓縮包,里面包含了py文件,以及經(jīng)過編譯的pyd文件,這篇文章主要介紹了Python中?whl包、tar.gz包的區(qū)別,需要的朋友可以參考下
    2022-08-08

最新評(píng)論