日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

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

發布時間:2024/9/5 python 47 如意码农
生活随笔 收集整理的這篇文章主要介紹了 字符编码、python2和python3编码的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

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

字符編碼

文本編輯器存儲信息的過程

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

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

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

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

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

不同編碼格式存入與讀取數據的過程

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

亂碼的分析

  1. 存文件是亂碼

    用中文的編碼格式存儲日文等其他國家的文字則會導致存入的二進制位并不對應要存的語言的字符,從而導致存入時就會出現亂碼。

  2. 讀文件時亂碼

    讀文件時如果讀取采用的編碼格式與文本原來的編碼格式不同則會導致出現亂碼,如用gbk讀取ASCII編碼的文件

總結

要想不出現亂碼,文件中的字符按什么標準編碼,就用什么標準去讀取文件(解碼)。由于內存中固定使用Unicode編碼,我們只能改變存儲到硬盤時使用的編碼格式。

python2和python3字符編碼的區別

python2

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

python3

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

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。