文本文件的編碼格式(科普)
- 文本文件存儲的內容是基於 字符編碼 的文件,常見的編碼有
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)