溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

一篇文章助你理解Python3中字符串編碼問題

發(fā)布時間:2020-07-18 18:21:39 來源:網(wǎng)絡(luò) 閱讀:324 作者:pengdongcheng 欄目:編程語言

前幾天給大家介紹了unicode編碼和utf-8編碼的理論知識,以及Python2中字符串編碼問題,沒來得及上車的小伙伴們可以戳這篇文章:淺談unicode編碼和utf-8編碼的關(guān)系和一篇文章助你理解Python2中字符串編碼問題。下面在Python3環(huán)境中進行代碼演示,分別Windows和Linux操作系統(tǒng)下進行演示,以加深對字符串編碼的理解。

一篇文章助你理解Python3中字符串編碼問題


在Python2的Python文件的文件頭往往會聲明字符的編碼格式,通過會使用代碼“#-*- coding -*-”作為編碼聲明,如下圖所示。

一篇文章助你理解Python3中字符串編碼問題


因為考慮到Python文件中可能會穿插中文,不然的話Python通過解釋器來讀取文件的時候,文件中的中文就有可能識別不了。而在Python3中,我們就不必像Python2的文件那樣進行聲明編碼格式了,因為在Python3中,默認將所有的字符都視為unicode格式了。下面在Python3環(huán)境下進行代碼演示。

1、首先在Windows操作系統(tǒng)下的Python3環(huán)境中進行演示,如下圖所示。


一篇文章助你理解Python3中字符串編碼問題

可以看到str1就是一個中文的字符串,字符串前面也沒有加u以表示其為unicode編碼,其實也沒有必要加那個字符,因為在Python3中將所有的字符都內(nèi)置成unicode字符了,這就是Python2和Python3最大的區(qū)別。所有在這里可以直接調(diào)用encode()函數(shù)對字符串進行編碼,而且也不會報錯。

2、接下來在Linux操作系統(tǒng)下的Python3環(huán)境中進行演示,如下圖所示。


一篇文章助你理解Python3中字符串編碼問題


這個過程和Windows下是一樣的,這里就不再贅述了。有個地方需要注意的是在Linux操作系統(tǒng)下,Python3的默認環(huán)境編碼變?yōu)榱藆tf-8編碼,而不是Python2中的ASCII編碼。

總的來說,Python3解決了一個字符編碼的重要問題,所以在字符串編碼的報錯方面相對Python2來說要少的多,幫助我們省下了很多事情。小伙伴們,關(guān)于在Python2和Python3中字符串的編碼問題這個知識點十分重要,希望大家都可以get到噢~~


向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI