小編給大家分享一下python3字符編碼如何使用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡(jiǎn)單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名申請(qǐng)、網(wǎng)絡(luò)空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、鄂倫春網(wǎng)站維護(hù)、網(wǎng)站推廣。編碼介紹
在人類社會(huì),不同國(guó)家有不同的標(biāo)準(zhǔn)語(yǔ)法,簡(jiǎn)體漢語(yǔ)、繁體漢語(yǔ)、美式英語(yǔ)、英式英語(yǔ)等.....
但是機(jī)器保存數(shù)據(jù)是以一種特殊的方式來保存,讀取的時(shí)候也是以同樣的方式來解讀。
在Python3當(dāng)中,默認(rèn)處理中文的方式叫UTF-8。【對(duì)比出傷害:UTF-8支持中文,Python2默認(rèn)格式是ASCII,不支持中文】
同樣的一個(gè)中文詞語(yǔ),例如:"中國(guó)",經(jīng)過UFT-8方法轉(zhuǎn)存到硬盤中,比如保存成了"110",再通過UFT-8方法讀取,也是顯示"中國(guó)";通過另一種方法轉(zhuǎn)存到硬盤中,"中國(guó)"則會(huì)保存成"101",然后通過UTF-8讀取,肯定不會(huì)顯示成"中國(guó)",也許就是一個(gè)亂七八糟的亂碼"燙燙燙燙燙燙燙燙燙";
雖然上面的110、119、燙燙燙是亂填的,下面示例代碼中有具體值,總之一個(gè):想要顯示正常,讀取數(shù)據(jù)時(shí)格式,必須和保存數(shù)據(jù)時(shí)使用的一致。
閑扯幾句——Python2 字符串設(shè)計(jì)上的一些缺陷:
使用ASCII 碼作為默認(rèn)編碼方式,對(duì)中文處理很不友好。
把字符串牽強(qiáng)地分為 unicode 和 str 兩種類型,誤導(dǎo)開發(fā)者
以上提及的兩個(gè)問題,Python3都很好的解決了
首先,Python3 把系統(tǒng)默認(rèn)編碼設(shè)置為 UTF-8
然后,文本字符和二進(jìn)制數(shù)據(jù)區(qū)分得更清晰,分別用 str 和 bytes 表示。
代碼示例:
import sys, locale s = "小甲" print(s) print(type(s)) print(sys.getdefaultencoding()) print(locale.getdefaultlocale()) with open("utf1","w",encoding = "utf-8") as f: f.write(s) with open("gbk1","w",encoding = "gbk") as f: f.write(s) with open("jis1","w",encoding = "shift-jis") as f: f.write(s)
代碼很簡(jiǎn)單,學(xué)過Python的人應(yīng)該都能看懂是啥意思~~
我們看一下運(yùn)行結(jié)果:
小甲utf-8 ('en_US', 'UTF-8')
正如大家所想, 就是將“小甲”原樣打印出來, 再把“小甲”存到3個(gè)文件中。
(shift-jis是日文編碼格式)
這里解釋一下打印出來的兩個(gè)“utf-8”是什么意思:
上面的 utf-8 指:系統(tǒng)默認(rèn)編碼
注: 不要把系統(tǒng)以為是操作系統(tǒng),這里可以理解成python3的編譯器本身
下面的 utf-8 指:本地默認(rèn)編碼
注: 這個(gè)才是操作系統(tǒng)的編碼。(在Windows運(yùn)行會(huì)變成gbk)
以上是python3字符編碼如何使用的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!