什麼是 UTF-8?
UTF-8 是一種 變長的字符編碼,屬於 Unicode 標準。它可以用來表示各種語言中的字符,並且支援全球幾乎所有的文字系統。
ASCII 和 UTF-8 的區別:
- ASCII 編碼:
- ASCII 使用 7 位元(即 1 字節)來表示每個字符,可以表示 128 個字符,主要包括英文字母、數字和一些基本的標點符號。
- 只能表示 基本的拉丁字母 和一小部分控制字符(例如換行符、回車符等)。
- UTF-8 編碼:
- UTF-8 是變長編碼,每個字符的編碼長度從 1 字節到 4 字節 不等。
- UTF-8 向下兼容 ASCII,也就是說,任何 ASCII 字符(比如英文字母)都可以在 UTF-8 中表示,並且會使用 1 字節,和 ASCII 編碼一樣。
- UTF-8 可以表示所有的 Unicode 字符,這包括來自不同語言的字符、特殊符號、表情符號等。
UTF-8 編碼的工作原理:
- 1 字節(8 位元):對於 ASCII 範圍(即 U+0000 到 U+007F 的字符,例如英文字母、數字、常見標點符號),UTF-8 會使用 1 字節來表示,這和 ASCII 是一樣的。
- 2 字節(16 位元):對於範圍在 U+0080 到 U+07FF 的字符(例如一些帶重音符號的字母,或其他語言的字符,比如西歐語言中的特殊字符)。
- 3 字節(24 位元):對於範圍在 U+0800 到 U+FFFF 的字符(例如許多非拉丁字母的字符,如中文、阿拉伯文、日文等)。
- 4 字節(32 位元):對於範圍在 U+10000 到 U+10FFFF 的字符(例如表情符號、古代語言字符等)。
UTF-8 的例子:
- ASCII 字符(1 字節):
- 英文字符 ‘A’ 的 ASCII 值是 65,對應的 UTF-8 編碼就是 1 字節:
01000001
。
- 英文字符 ‘A’ 的 ASCII 值是 65,對應的 UTF-8 編碼就是 1 字節:
- 帶重音符的字符(2 字節):
- é(法語中的字母)在 UTF-8 中是 2 字節:
11000011 10101111
。
- é(法語中的字母)在 UTF-8 中是 2 字節:
- 中文字符(3 字節):
- “中” 這個字在 UTF-8 中是 3 字節:
11100100 10111000 10011000
。
- “中” 這個字在 UTF-8 中是 3 字節:
- 表情符號(4 字節):
- 🙂(微笑的表情符號)在 UTF-8 中是 4 字節:
11110000 10011111 10011001 10000001
。
- 🙂(微笑的表情符號)在 UTF-8 中是 4 字節:
小結:
- ASCII:每個字符 固定 1 字節,只能表示 128 個字符,主要是英語和一些基本符號。
- UTF-8:每個字符使用 1 到 4 字節不等,可以表示所有的 Unicode 字符,並且兼容 ASCII。
因此,UTF-8 編碼在處理多語言和不同字符時非常強大,能夠有效地表示全球各種語言的文字,而 ASCII 編碼則僅限於基本的英語字符。