1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問(wèn)題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
      一篇文章助你理解Python2中字符串編碼問(wèn)題-創(chuàng)新互聯(lián)

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

      創(chuàng)新互聯(lián)建站為客戶提供專業(yè)的做網(wǎng)站、成都網(wǎng)站建設(shè)、程序、域名、空間一條龍服務(wù),提供基于WEB的系統(tǒng)開(kāi)發(fā). 服務(wù)項(xiàng)目涵蓋了網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站程序開(kāi)發(fā)、WEB系統(tǒng)開(kāi)發(fā)、微信二次開(kāi)發(fā)、移動(dòng)網(wǎng)站建設(shè)等網(wǎng)站方面業(yè)務(wù)。

      一篇文章助你理解Python2中字符串編碼問(wèn)題


      1、首先在Windows操作系統(tǒng)下的Python2環(huán)境中進(jìn)行演示,我們都知道Python2中的編碼問(wèn)題經(jīng)常出現(xiàn),需要通過(guò)編碼(encode)和解碼(decode)進(jìn)行實(shí)現(xiàn)。通過(guò)cmd進(jìn)入命令行窗口,然后輸入兩個(gè)字符串’abc’和u’abc’,如下圖所示。需要注意的是這兩個(gè)字符串的編碼格式是不一樣的,前者是string,后者是unicode。接下來(lái)對(duì)其進(jìn)行編碼,指定編碼為utf-8,可以發(fā)現(xiàn)兩個(gè)都正常顯示,沒(méi)有報(bào)錯(cuò)。


      一篇文章助你理解Python2中字符串編碼問(wèn)題


      當(dāng)字符串變?yōu)橹形牡臅r(shí)候,爾后對(duì)其再次進(jìn)行編碼演示的時(shí)候,如下圖所示,可以看到前者有報(bào)錯(cuò)產(chǎn)生,而后者沒(méi)有報(bào)錯(cuò)。這個(gè)報(bào)錯(cuò)在Python2中經(jīng)常出現(xiàn),所以需要特別注意,Python字符串在內(nèi)存中它是通過(guò)unicode來(lái)進(jìn)行編碼的。此時(shí)定義的str1它傳遞過(guò)來(lái)的是utf-8編碼,非unicode編碼,使用encode()函數(shù)的前提是待轉(zhuǎn)換的字符串編碼為unicode編碼。所以可以看到str1會(huì)報(bào)錯(cuò),而str2并沒(méi)有報(bào)錯(cuò)。在Windows下字符串的編碼格式是GB2312編碼,在Linux下字符串的編碼格式是utf-8編碼。如果想要將str1順利的轉(zhuǎn)換為utf-8編碼的話,則需要先將str1進(jìn)行解碼成unicode編碼,再進(jìn)行編碼即可,此時(shí)得到的結(jié)果同str2轉(zhuǎn)換的結(jié)果是一致的。


      一篇文章助你理解Python2中字符串編碼問(wèn)題


      2、現(xiàn)在在Linux操作系統(tǒng)下的Python2環(huán)境中進(jìn)行演示,使用一樣的字符串,結(jié)果最后是一樣的,但是過(guò)程有些不同,如下圖所示。


      一篇文章助你理解Python2中字符串編碼問(wèn)題


      在Windows下字符串的編碼格式是GB2312編碼,在Linux下字符串的編碼格式是utf-8編碼。所以當(dāng)輸入有中文的字符串的時(shí)候,直接編碼為utf-8會(huì)報(bào)錯(cuò);通過(guò)gb2312編碼進(jìn)行解碼也會(huì)報(bào)錯(cuò)。只要通過(guò)utf-8編碼進(jìn)行解碼,然后再通過(guò)utf-8進(jìn)行編碼才可以正確的輸出結(jié)果。
      有個(gè)地方大家可能會(huì)覺(jué)得很奇怪,就是一開(kāi)始str1.encode(‘utf-8’),表面上看上去str1已經(jīng)是unicode編碼了,之后進(jìn)行編碼,按說(shuō)沒(méi)有什么問(wèn)題,可是為什么還是會(huì)報(bào)錯(cuò)呢?其實(shí)主要原因還是在于str1并不是真正的解碼成了unicode格式。其實(shí)str1.encode(‘utf-8’),它默認(rèn)的會(huì)進(jìn)行一步解碼,但是其decode()的過(guò)程調(diào)用的是默認(rèn)的編碼格式,而這個(gè)默認(rèn)的編碼格式卻是ASCII編碼,如下圖所示。


      一篇文章助你理解Python2中字符串編碼問(wèn)題


      當(dāng)中文字符串使用ASCII編碼進(jìn)行解碼之后,本身就報(bào)錯(cuò)了,后邊的encode(‘utf-8’)根本就沒(méi)有執(zhí)行到。
      關(guān)于Python2中字符串編碼的問(wèn)題,就先介紹到這里了,相信大家應(yīng)該有了一個(gè)初步的認(rèn)識(shí)了,下一篇文章將介紹Python3中字符串編碼的問(wèn)題。

      另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


      網(wǎng)頁(yè)題目:一篇文章助你理解Python2中字符串編碼問(wèn)題-創(chuàng)新互聯(lián)
      本文來(lái)源:http://www.ef60e0e.cn/article/ijjsg.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        嘉义市| 沾益县| 涪陵区| 西峡县| 巴林右旗| 保靖县| 衡水市| 敦化市| 常熟市| 山阴县| 克拉玛依市| 托里县| 三河市| 吉木萨尔县| 温宿县| 贵港市| 仙桃市| 云安县| 兴隆县| 肇源县| 花垣县| 淳安县| 德安县| 安多县| 萨嘎县| 咸宁市| 密云县| 金阳县| 石景山区| 门头沟区| 玛纳斯县| 天全县| 东丰县| 繁昌县| 雅安市| 梁河县| 西乡县| 伊春市| 友谊县| 义乌市| 宁武县|