Python - Unicode 系統



什麼是 Unicode 系統?

軟體應用程式通常需要顯示各種不同語言的訊息輸出,例如英語、法語、日語、希伯來語或印地語。Python 的字串型別使用 Unicode 標準來表示字元。這使得程式能夠處理所有這些不同的可能字元。

字元是文字中最小的組成部分。“A”、“B”、“C”等都是不同的字元。“È”和“Í”也是如此。Unicode 字串是一系列程式碼點,程式碼點是從 0 到 0x10FFFF(十進位制 1,114,111)的數字。這串程式碼點需要在記憶體中表示為一組程式碼單元,然後程式碼單元對映到 8 位位元組。

字元編碼

一系列程式碼點在記憶體中表示為一組程式碼單元,對映到 8 位位元組。將 Unicode 字串轉換為位元組序列的規則稱為字元編碼。

存在三種類型的編碼:UTF-8、UTF-16 和 UTF-32。UTF 代表 **Unicode 轉換格式**。

Python 的 Unicode 支援

從 Python 3.0 開始,內建支援 Unicode。**str** 型別包含 Unicode 字元,因此使用單引號、雙引號或三引號字串語法建立的任何字串都儲存為 Unicode。Python 原始碼的預設編碼為 UTF-8。

因此,字串可能包含 Unicode 字元的文字表示(3/4)或其 Unicode 值(\u00BE)。

示例

var = "3/4"
print (var)
var = "\u00BE"
print (var)

以上程式碼將產生以下 **輸出** -

3/4
¾

示例

在以下示例中,字串“10”使用 1 和 0 的 Unicode 值儲存,它們分別是 \u0031 和 u0030。

var = "\u0031\u0030"
print (var)

它將產生以下 **輸出** -

10

字串以人類可讀的格式顯示文字,而位元組以二進位制資料儲存字元。編碼將資料從字元字串轉換為一系列位元組。解碼將位元組轉換回人類可讀的字元和符號。重要的是不要

混淆這兩種方法。encode 是字串方法,而 decode 是 Python 位元組物件的的方法。

示例

在以下示例中,我們有一個字串變數,其中包含 ASCII 字元。ASCII 是 Unicode 字元集的子集。encode() 方法用於將其轉換為位元組物件。

string = "Hello"
tobytes = string.encode('utf-8')
print (tobytes)
string = tobytes.decode('utf-8')
print (string)

decode() 方法將位元組物件轉換回 str 物件。使用的編碼方法是 utf-8。

b'Hello'
Hello

示例

在以下示例中,盧比符號(₹)使用其 Unicode 值儲存在 變數 中。我們將字串轉換為位元組,然後轉換回 str。

string = "\u20B9"
print (string)
tobytes = string.encode('utf-8')
print (tobytes)
string = tobytes.decode('utf-8')
print (string)

執行上述程式碼時,將產生以下 **輸出** -

₹
b'\xe2\x82\xb9'
₹
廣告