亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python實(shí)現(xiàn)將Unicode轉(zhuǎn)換為ASCII

 更新時(shí)間:2023年10月26日 08:57:14   作者:跡憶客  
這篇文章主要為大家詳細(xì)介紹了系統(tǒng)編碼的不同方法以及如何利用Python實(shí)現(xiàn)將Unicode轉(zhuǎn)換為?ASCII,文中的示例代碼講解詳細(xì),有需要的小伙伴可以學(xué)習(xí)一下

通過本文,我們將學(xué)習(xí)如何將 Unicode 編碼為字節(jié),了解系統(tǒng)編碼的不同方法以及在 Python 中將 Unicode 轉(zhuǎn)換為 ASCII。

在 Python 中將 Unicode 轉(zhuǎn)換為 ASCII

Python 3 字符串的基本問題是由字符組成的; Python 中沒有字符類型,但它們包含 Unicode 字符。

如果我們說 a = ‘abcd’ 并使用 len() 函數(shù)檢查它的長度,那么我們得到 4 并且我們聲明 s=‘????’ 意思是你好,這是希伯來語中的單詞。 這些長度是相同的,這很好,因?yàn)閮蓚€(gè)變量都有四個(gè)字符。

>>a='abcd'
>>len(a)
4
>>s='????'
>>len(s)
4

事實(shí)上,幕后是不同的字節(jié)數(shù)與這里的問題無關(guān),len() 測量的是字符數(shù),而不是字節(jié)數(shù),但當(dāng)然,在幕后,UTF-8 Unicode 字符和 UTF-8 編碼使用更多字節(jié)。

那么我們?nèi)绾螌⒆址D(zhuǎn)換為我們需要的字節(jié)呢? 好吧,我們可以使用 s.encode(),如果我們這樣做,它會返回一個(gè)字節(jié)字符串,該字符串將是我們創(chuàng)建希伯來語單詞 ???? 所需的八個(gè)字節(jié)。

>>s.encode()
b'\xd7\xa9\xd7\x9c\xd7\x95\xd7\x9d'
>>'abcd'.encode()
b'abcd'

現(xiàn)在我們將獲取一個(gè) Unicode 字符串并將其轉(zhuǎn)換為字節(jié)字符串,但它比這更復(fù)雜,因?yàn)槲覀冎肋@個(gè)字符串是什么,并且我們想要取回不代表 Unicode 底層字節(jié)的字節(jié)。 我們想要取回不同編碼系統(tǒng)的底層字節(jié)。

例如,我們使用 iso-8859-8,這是您可能聽說過的一種在西歐廣泛使用的編碼類型,它允許我們在一個(gè)字節(jié)中包含特定語言所需的所有不同字符 ,所以如果我們需要將一個(gè)字符串轉(zhuǎn)換為非 Unicode 的編碼。

>>s.encode('iso-8859-8')
b'\xf9\xec\xe5\xed'

讓我們看看如果我們有來自不同語言的東西會發(fā)生什么,就像我們說 s='北京' 就是北京,如果我們對其進(jìn)行編碼,那么我們會得到一個(gè)字節(jié)字符串。

我們看到這里有六個(gè)字節(jié),因?yàn)槊總€(gè)漢字都由三個(gè)字節(jié)表示; 這是我們使用 UTF-8 進(jìn)行的可變長度編碼。

>>s='北京'
>>s.encode()
b'\xe5\x8c\x97\xe4\xba\xac'

現(xiàn)在我們想使用 iso-8859-8 對 北京 進(jìn)行編碼,當(dāng)我們執(zhí)行此操作時(shí),我們會得到 UnicodeEncodeError,這意味著編碼告訴我們您想要獲取這些 Unicode 字符并將它們轉(zhuǎn)換為 iso-8859 的字節(jié) -8 不允許的編碼。

s.encode('iso-8859-8')

如果我們用這個(gè)連接英語單詞,它也會失敗,因?yàn)槿魏蔚胤轿覀兛赡苡绣e(cuò)誤,它都會失敗,但我們可以添加一個(gè)參數(shù)來幫助忽略錯(cuò)誤。

>>s='I often go to 北京'
>>s.encode('iso-8859-8',errors='ignore')
b'I often go to '

如果您有一大堆文本并且可以丟失 Unicode 字符,則可以使用此選項(xiàng)。

讓我們看一下默認(rèn)情況下等于 strict 的 help(s.encode),但它可以是一些不同的東西,所以如果我們使用替換值來錯(cuò)誤,它并不真正知道如何替換,所以它 只是要使用問號。

help(s.encode)

>>s='I often go to 北京'
>>s.encode('iso-8859-8',errors='replace')
b'I often go to ??'

當(dāng)我們使用 xmlcharrefreplace 時(shí),我們會返回與這些 Unicode 字符有關(guān)的 XML 實(shí)體,因此如果您要將其粘貼到 XML 文檔或 HTML 中,那么這將起作用。

>>s.encode('iso-8859-8',errors='xmlcharrefreplace')
b'I often go to 北京'

這取決于您的需求; 如果您將 Unicode 字符轉(zhuǎn)換為字節(jié),這是典型的情況,因?yàn)槟鷮⑼ㄟ^網(wǎng)絡(luò)發(fā)送它們,或者您正在處理某種其他類型的編碼系統(tǒng)。

如果您是初學(xué)者并且不想詳細(xì)介紹,請使用以下命令安裝名為 unidecode 的 Python 包。

它將直接將 Unicode 轉(zhuǎn)換為 ASCII; 當(dāng)您使用需要將 Unicode 轉(zhuǎn)換為 ASCII 的應(yīng)用程序時(shí),它會很有幫助。

>>pip install unidecode
>>>from unidecode import unidecode
>>>unidecode(u'北京')
'Bei Jing'

到此這篇關(guān)于Python實(shí)現(xiàn)將Unicode轉(zhuǎn)換為ASCII的文章就介紹到這了,更多相關(guān)Python Unicode轉(zhuǎn)ASCII內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python自動化辦公之生成PDF報(bào)告詳解

    Python自動化辦公之生成PDF報(bào)告詳解

    因?yàn)楣ぷ餍枰?jīng)常需要生成很多的PDF報(bào)告給客戶查看產(chǎn)品效果以及過程的講解,每次都需要按照一定的格式的編寫文檔并生成PDF報(bào)告,這樣重復(fù)性的工作實(shí)在太累。本文就來用Python實(shí)現(xiàn)自動生成PDF報(bào)告吧
    2023-03-03
  • Django中models.model如何使用舉例詳解

    Django中models.model如何使用舉例詳解

    在現(xiàn)代Web開發(fā)中Django是一個(gè)非常流行的Web框架,它允許開發(fā)者快速構(gòu)建強(qiáng)大而優(yōu)雅的Web應(yīng)用程序,這篇文章主要介紹了Django中models.model如何使用的相關(guān)資料,需要的朋友可以參考下
    2025-04-04
  • python實(shí)現(xiàn)生成字符串大小寫字母和數(shù)字的各種組合

    python實(shí)現(xiàn)生成字符串大小寫字母和數(shù)字的各種組合

    這篇文章主要給大家介紹了關(guān)于python生成各種字符串的方法實(shí)例,給大家提供些思路,拋磚引玉,希望大家能夠喜歡
    2019-01-01
  • 一文帶你精通Python中exec函數(shù)的高級技巧

    一文帶你精通Python中exec函數(shù)的高級技巧

    在?Python?中,exec?是一個(gè)內(nèi)置函數(shù),允許在運(yùn)行時(shí)動態(tài)執(zhí)行?Python?代碼,本文將詳細(xì)介紹?Python?exec?函數(shù)的高級用法,包括動態(tài)代碼生成、執(zhí)行外部文件等內(nèi)容,希望對大家有所幫助
    2023-11-11
  • python configparser中默認(rèn)值的設(shè)定方式

    python configparser中默認(rèn)值的設(shè)定方式

    這篇文章主要介紹了python configparser中默認(rèn)值的設(shè)定方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • 在Mac OS上部署Nginx和FastCGI以及Flask框架的教程

    在Mac OS上部署Nginx和FastCGI以及Flask框架的教程

    這篇文章主要介紹了在Mac OS上部署Nginx和FastCGI以及Flask框架的教程,Flask是Python下一個(gè)極簡的web開放框架,需要的朋友可以參考下
    2015-05-05
  • selenium學(xué)習(xí)教程之定位以及切換frame(iframe)

    selenium學(xué)習(xí)教程之定位以及切換frame(iframe)

    這篇文章主要給大家介紹了關(guān)于selenium學(xué)習(xí)教程之定位以及切換frame(iframe)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Django數(shù)據(jù)庫操作之save與update的使用

    Django數(shù)據(jù)庫操作之save與update的使用

    這篇文章主要介紹了Django數(shù)據(jù)庫操作之save與update的使用,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • python 異或加密字符串的實(shí)例

    python 異或加密字符串的實(shí)例

    今天小編就為大家分享一篇python 異或加密字符串的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Python中實(shí)現(xiàn)進(jìn)度條的多種方法總結(jié)

    Python中實(shí)現(xiàn)進(jìn)度條的多種方法總結(jié)

    在Python編程中,進(jìn)度條是一個(gè)非常有用的功能,它能讓用戶直觀地了解任務(wù)的進(jìn)度,提升用戶體驗(yàn),本文將介紹幾種在Python中實(shí)現(xiàn)進(jìn)度條的常用方法,并通過代碼示例和案例來展示它們的具體應(yīng)用,需要的朋友可以參考下
    2025-01-01

最新評論