日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

字符编码、python2和python3编码的区别

發(fā)布時(shí)間:2024/9/5 59 如意码农
生活随笔 收集整理的這篇文章主要介紹了 字符编码、python2和python3编码的区别 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

  • 字符編碼
    • 文本編輯器存儲(chǔ)信息的過程
    • python解釋器解釋python代碼的流程
    • python解釋器與文本編輯器的異同
    • 不同編碼格式存入與讀取數(shù)據(jù)的過程
      • 亂碼的分析
  • python2和python3字符編碼的區(qū)別
    • python2
    • python3

字符編碼

文本編輯器存儲(chǔ)信息的過程

  1. 打開編輯器就在內(nèi)存中打開了一個(gè)進(jìn)程,用編輯器編寫的內(nèi)容存在內(nèi)存中,斷電會(huì)丟失。
  2. 點(diǎn)擊保存,編輯器把內(nèi)存的數(shù)據(jù)刷到了硬盤上。
  3. 編寫.py文件(沒有執(zhí)行時(shí))和編寫其他文件沒有區(qū)別,只是在寫一堆字符。

python解釋器解釋python代碼的流程

  • 第一階段:python解釋器啟動(dòng),這時(shí)相當(dāng)于啟動(dòng)了一個(gè)文本編輯器。
  • 第二階段:python解釋器相當(dāng)于文本編輯器,打開test.py文件,從硬盤將test.py文件從硬盤讀入到內(nèi)存中(python的解釋性決定了解釋器只關(guān)心文件的內(nèi)容,不關(guān)心文件的后綴)。
  • 第三階段:python解釋器解釋執(zhí)行加載到內(nèi)存中的test.py代碼。在該階段才會(huì)識(shí)別python語法,為變量值等開辟存儲(chǔ)空間。

python解釋器與文本編輯器的異同

  • 相同點(diǎn):python具備讀取.py文件的功能,這與文本編輯器一樣。
  • 不同點(diǎn):讀取文件之后兩者的目的不同,文本編輯器將文件讀入內(nèi)存后為了顯示和編輯,python解釋器是為了執(zhí)行Python代碼,所以會(huì)識(shí)別代碼的語法。

不同編碼格式存入與讀取數(shù)據(jù)的過程

utf-8編碼格式只能和Unicode格式相互轉(zhuǎn)換,不能和其他編碼格式轉(zhuǎn)化

亂碼的分析

  1. 存文件是亂碼

    用中文的編碼格式存儲(chǔ)日文等其他國(guó)家的文字則會(huì)導(dǎo)致存入的二進(jìn)制位并不對(duì)應(yīng)要存的語言的字符,從而導(dǎo)致存入時(shí)就會(huì)出現(xiàn)亂碼。

  2. 讀文件時(shí)亂碼

    讀文件時(shí)如果讀取采用的編碼格式與文本原來的編碼格式不同則會(huì)導(dǎo)致出現(xiàn)亂碼,如用gbk讀取ASCII編碼的文件

總結(jié)

要想不出現(xiàn)亂碼,文件中的字符按什么標(biāo)準(zhǔn)編碼,就用什么標(biāo)準(zhǔn)去讀取文件(解碼)。由于內(nèi)存中固定使用Unicode編碼,我們只能改變存儲(chǔ)到硬盤時(shí)使用的編碼格式。

python2和python3字符編碼的區(qū)別

python2

python2有兩種存儲(chǔ)形式,第一種:Unicode;第二種:按coding頭選擇存儲(chǔ)格式,假設(shè)python2用utf8存儲(chǔ)x='中文',當(dāng)你print(x)的時(shí)候,終端接收gbk的變量x,但是windows終端編碼是utf8,會(huì)亂碼。

python3

python3只有Unicode一種存儲(chǔ)變量的形式。Python2中默認(rèn)使用ascii,Python3中默認(rèn)使用utf-8,文本編輯器編寫的文件默認(rèn)為gbk編碼格式。

總結(jié)

以上是生活随笔為你收集整理的字符编码、python2和python3编码的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。