python2和python3文件的編碼格式

文本文件的編碼格式(科普)

  • 文本文件存儲的內容是基於 字符編碼 的文件,常見的編碼有 ASCII 編碼,UNICODE 編碼等

Python 2.x 默認使用 ASCII 編碼格式
Python 3.x 默認使用 UTF-8 編碼格式,也有說是unicode的

UTF-8 是一種 Unicode 的編碼方式,主要作用對 Unicode 碼的數據進行轉換,轉換後方便存儲和網絡傳輸python3 內存中使用的字符串全部是 unicode 碼,但是網絡傳輸的數據或者從磁盤讀取的數據是把 unicode 碼轉換過的數據,通常情況下可能是 utf-8 格式的數據,所以如果從網絡中讀取或者磁盤中讀取其實就是把 utf-8 格式的數據解碼成 unicode 碼數據,相反如果想把內存中 unicode 碼數據存儲到磁盤或者網絡中需要對 unicode 碼進行編碼,通常可以採用 utf-8 的形式進行編碼

1 ASCII 編碼和 UNICODE 編碼

ASCII 編碼

  • 計算機中只有 256 個 ASCII 字符
  • 一個 ASCII 在內存中佔用 1 個字節 的空間
    • 8 個 0/1 的排列組合方式一共有 256 種,也就是 2 ** 8

UTF-8 編碼格式

  • 計算機中使用 1~6 個字節 來表示一個 UTF-8 字符,涵蓋了 地球上幾乎所有地區的文字
  • 大多數漢字會使用 3 個字節 表示
  • UTF-8 是 UNICODE 編碼的一種編碼格式

2 Ptyhon 2.x 中如何使用中文

Python 2.x 默認使用 ASCII 編碼格式
Python 3.x 默認使用 UTF-8 編碼格式

  • 在 Python 2.x 文件的 第一行 增加以下代碼,解釋器會以 utf-8 編碼來處理 python 文件
# *-* coding:utf8 *-*

這方式是官方推薦使用的!

  • 也可以使用
# coding=utf8

unicode 字符串

  • 在 Python 2.x 中,即使指定了文件使用 UTF-8 的編碼格式,但是在遍歷字符串時,仍然會 以字節爲單位遍歷 字符串
  • 要能夠 正確的遍歷字符串,在定義字符串時,需要 在字符串的引號前,增加一個小寫字母 u,告訴解釋器這是一個 unicode 字符串(使用 UTF-8 編碼格式的字符串)
# *-* coding:utf8 *-*

# 在字符串前,增加一個 `u` 表示這個字符串是一個 utf8 字符串
hello_str = u"你好世界"

print(hello_str)

for c in hello_str:
    print(c)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章