乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      字符編碼

       印度阿三17 2020-03-12

      字符編碼表就是一張字符與數(shù)字的對(duì)應(yīng)關(guān)系的表

      內(nèi)存

      上 ------------------->翻譯 ------------------>01011010

      上 <-------------------- 翻譯<-----------------01011010

      ASCII表:

      1、只支持英文字符串

      2、采用 8 位二進(jìn)制數(shù)對(duì)應(yīng)一個(gè)英文字符串

      GBK 表:

      1、支持英文字符、中文字符

      2、采用 8 位(8bit=1Bytes)二進(jìn)制數(shù)對(duì)應(yīng)一個(gè)英文字符串

      采用 16 位(16bit = 2Bytes)二進(jìn)制數(shù)對(duì)應(yīng)一個(gè)中文字符串

      unicode(內(nèi)存中統(tǒng)一使用 unicode):

      1、兼容萬(wàn)國(guó)字符,與萬(wàn)國(guó)字符都有對(duì)應(yīng)關(guān)系

      2、采用 16 位(16bit=2Bytes)二進(jìn)制對(duì)應(yīng)一個(gè)字符串

      個(gè)別生僻會(huì)采用 4Bytes 、8Bytes

      人類輸入的字符------------->unicode格式數(shù)字(內(nèi)存中)<------------->GBK格式二進(jìn)制(硬盤)

      人類輸入的字符------------->unicode格式數(shù)字(內(nèi)存中)<------------->Shift_JIS格式二進(jìn)制(硬盤)

      注:GBK 與 Shift_JIS字符編碼都可以轉(zhuǎn)為 unicode,但是它們兩之間不能通過(guò) unicode互轉(zhuǎn)

      UTF-8:

      1、英文采用1 個(gè) Bytes

      2、中文采用 3 個(gè) Bytes

      window :默認(rèn)采用 GBK

      mac :默認(rèn)采用 utf-8

      linux:默認(rèn)采用 utf-8

      python 文件的執(zhí)行過(guò)程:

      1、先將 python 解釋器啟動(dòng)

      2、調(diào)用系統(tǒng)操作,將文本文件內(nèi)容由硬盤讀入內(nèi)存

      3、解釋器解釋并執(zhí)行剛剛讀入內(nèi)存的文本內(nèi)容,識(shí)別相關(guān)語(yǔ)法。

      python 解釋器:

      python 2:默認(rèn)的是 ascii 碼

      python 3:默認(rèn)的是 utf-8 碼

      為了能夠在 python2 解釋器讀入文本文件不亂碼,可以在文本文件開頭指定編碼格式,這樣 python2 解釋器將內(nèi)容讀入內(nèi)存時(shí)就會(huì)知道 文本內(nèi)容使用的編碼格式。

      保證了運(yùn)行 python 程序前兩個(gè)階段不亂碼的核心是指定編碼格式,即用什么編碼存入硬盤的:

      在 文件首行寫入包含 # 號(hào)在內(nèi)的以下內(nèi)容:

      #coding:當(dāng)初寫入硬盤時(shí)采用的編碼格式    #告訴 python 解釋器,文本內(nèi)容的編碼格式

      解釋器會(huì)先用默認(rèn)的編碼方式讀取文件的首行內(nèi)容,由于首行是純英文組成,而任何編碼方式都可以識(shí)別英文字符。

      例:

      在 python2 中

      # coding:utf-8
      x = '上' # x的值為untf-8格式的二進(jìn)制  python解釋器執(zhí)行到這一步時(shí),會(huì)新建一塊內(nèi)存空間來(lái)存入 "上" 值。
      print(x) # 打印操作是將x的值,即utf-8格式的二進(jìn)制交給終端,當(dāng)終端收到后發(fā)現(xiàn)并不是unicode(只有unicode才與字符有對(duì)應(yīng)關(guān)系),所以終端會(huì)執(zhí)行操作:utf-8二進(jìn)制---解碼(decode)-->unicode格式的二進(jìn)制,解碼的過(guò)程中使用的程序終端會(huì)采用自己默認(rèn)的編碼格式,而在pycharm的終端默認(rèn)編碼為utf-8、windows下的cmd終端的默認(rèn)編碼為gbk,所以該打印操作在pycharm中顯示正常,而在windows下的cmd中則亂碼
      
      # 在windows下的cmd中運(yùn)行效果如下
      C:\Users\Administrator>python2 E:\aaa.py
      涓

      python2:str 有兩種類型:str 和 unicode

      str類型:

           x = ‘上’    #字符串會(huì)按照文件頭指定的編碼格式存入變量值的內(nèi)存空間

      unicode 類型:

          #coding:utf-8
        x = u‘上’   #強(qiáng)調(diào)存成 unicode 等同于 x= '上'.decode(utf-8)

      保證python2 的 str 類型不亂碼:

      #coding:utf-8
        x = u'上' # #強(qiáng)調(diào)存成 unicode 等同于 x= '上'.decode(utf-8)

      python3:str 類型默認(rèn)直接存為 unicode 格式,無(wú)論如何都不會(huì)亂碼

      結(jié)論:

      1、內(nèi)存中固定使用的是 unicode、這是不能改變的,我們可以改變的是存入硬盤的格式

              英文 漢字-》unicode-》gbk
        
          英文 日文-》unicode-》shift-jis
          
          萬(wàn)國(guó)字符》-unicode-》utf-8

      2、文本文件存取亂碼問題

      1)存亂了:

      例:如果用戶輸入的內(nèi)容中包含中文和日文字符,如果單純以shift_JIS存,日文可以正常寫入硬盤,而由于中文字符在shift_jis中沒有找到對(duì)應(yīng)關(guān)系而導(dǎo)致存亂了

      解決方法是:將文本文件編碼格式設(shè)置成支持文件內(nèi)字符串的格式

      2)讀亂了:

      例:如果硬盤中的數(shù)據(jù)是shift_JIS格式存儲(chǔ)的,采GBK格式讀入內(nèi)存就讀亂了

      解決方法是:文件以什么編碼格式存如硬盤,就應(yīng)該以什么編碼格式讀入內(nèi)存。

      總結(jié):

      1、保證存的時(shí)候不亂:在由內(nèi)存寫入硬盤時(shí),必須將編碼格式設(shè)置為支持所輸入字符的編碼格式

      2、保證讀的時(shí)候不亂:在由硬盤讀入內(nèi)存是,必須采用與寫入硬盤時(shí)相同的編碼格式

      二 編碼與解碼

      編碼:

      由字符轉(zhuǎn)換成內(nèi)存中 unicode,以及由 unicode轉(zhuǎn)換成其他編碼(存在硬盤里)的過(guò)程,都稱為編碼encode

      字符-------------encode-------------》unicode---------encode---------》GBK、utf-8、Shift_JIS

      解碼:

      由內(nèi)存中的 unicode 轉(zhuǎn)換成字符,以及由其他編碼(存在硬盤里)轉(zhuǎn)換成 unicode 的過(guò)程,都被稱為解碼 decode

      (utf-8、Shift_JIS、GBK--------decode----------》unicode-----------decode---------------》字符

      1036857-20170909230621226-849802883

      補(bǔ)充:

      瀏覽網(wǎng)頁(yè)的時(shí)候,服務(wù)器會(huì)把動(dòng)態(tài)生成的 unicode 內(nèi)容轉(zhuǎn)為 UTF-8 再傳輸?shù)綖g覽器

      如果服務(wù)端 encode 的編碼格式是utf-8,客戶端內(nèi)存中收到的也是 utf-8 編碼的結(jié)果

      來(lái)源:https://www./content-4-657401.html

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多