當前位置:成語大全網 - 書法字典 - 如何在Python中使用UTF-8編碼

如何在Python中使用UTF-8編碼

摘要可以在python代碼的開頭聲明,也就是說。py文件。

解析py文件中的代碼

Python默認腳本文件全部由anscii編碼。當文件中有不在ANSCII編碼範圍內的字符時,您應該使用“編碼說明”來更正模塊的定義。如果。py文件包含中文字符(嚴格來說,它包含非ANSCII字符),需要在第壹行或第二行指定壹個編碼語句:

# -*-編碼=utf-8 -*-

#編碼=utf-8

#以上兩個選壹個。

其他規範如gbk、gb2312也可;否則,將會出現:

語法錯誤:文件test.py的第3行有非ASCII字符“\xe4”,但沒有聲明編碼。詳情見http://www.python.org/peps/pep-0263.html

python中的編碼和解碼

先說python中的字符串類型。python中有兩種字符串類型,即str和unicode,都是從basestring派生出來的。

Str類型是包含8位字節字符代表的序列(at last);

unicode的每個單元是壹個unicode obj

str文檔裏有壹句話:

字符串數據類型也用於表示字節數組,例如,保存從文件中讀取的數據。

也就是說,當讀取壹個文件的內容或者從網絡讀取內容時,要保存的對象是str類型;如果要把壹個字符串轉換成特定的編碼類型,需要先轉換成unicode,再從Unicode轉換成特定的編碼類型,比如utf-8,gb2312等。

擴展內容utf-8編碼

UTF-8 (8位Unicode轉換格式)是Unicode和前綴碼的可變長度字符編碼。它可以用來表示Unicode標準中的任何字符,其編碼中的第壹個字節仍然兼容ASCII,這使得原來處理ASCII字符的軟件可以繼續使用,而無需或只需少量修改。因此,它逐漸成為電子郵件、網頁和其他存儲或發送文本的應用程序中的首選編碼。

UTF-8使用壹到六個字節對每個字符進行編碼(但是UTF-8在2003年10月被RFC 3629重新標準化,只能使用Unicode定義的區域,從U+0000到U+10FFFF,也就是最多四個字節):

1和128 US-ASCII字符只需要壹個字節編碼(Unicode範圍從U+0000到U+007F)。

2.拉丁語、希臘語、西裏爾語、亞美尼亞語、希伯來語、阿拉伯語、敘利亞語和其他帶有附加符號的字母需要雙字節編碼(Unicode範圍從U+0080到U+07FF)。

3.其他基本多語種平面(BMP)中的字符(包括最常用的詞,比如大部分漢字)用三個字節編碼(Unicode範圍從U+0800到U+FFFF)。

4.其他很少用的Unicode?輔助平面中的字符編碼為4到6個字節(4個字節用於U+10000到U+1FFFFFF的Unicode範圍,5個字節用於U+200000到U+3 FFFFFFFF的Unicode範圍,6個字節用於U+400000到U+7 FFFFFFFF的Unicode範圍)。

對於上面提到的第四個字符,UTF-8使用四至六個字節進行編碼,這似乎太消耗資源了。但UTF-8可以用三個字節表示所有常用字符,它的另壹種選擇UTF-16編碼也需要四個字節來編碼上面提到的第四個字符,所以要看所用字符的分布範圍來決定哪種編碼更高效。但是,如果使用壹些傳統的壓縮系統,如DEFLATE,這些不同編碼系統之間的差異將變得微不足道。考慮到傳統壓縮算法對短字符壓縮效果不佳,可以考慮使用Unicode標準壓縮格式(SCSU)。

互聯網工程工作組(IETF)要求所有互聯網協議必須支持UTF-8編碼。互聯網郵件聯盟(IMC)建議所有電子郵件軟件都支持UTF-8編碼。