UTF-8 是一種字符編碼系統(tǒng)。它允許您將字符表示為 ASCII 文本,同時(shí)仍允許使用國(guó)際字符,如中文字符。截至20世紀(jì)20年代中期,UTF-8是最受歡迎的編碼系統(tǒng)之一。要開始使用 UTF-8,您需要首先熟悉基本的 ASCII 字符集。
什么是 ASCII 字符集?
ASCII 使用 7 位碼位來表示 128 個(gè)不同的字符。這些碼位分為 95 個(gè)可打印字符,其中包括英語字母表中的 26 個(gè)字母(A 到 Z,大寫和小寫)、10 位數(shù)字(0 到 9)以及各種標(biāo)點(diǎn)符號(hào)和其他符號(hào)。
還有 33 個(gè)不可打印的字符,其中包括回車符和換行符等控制字符,以及用于格式化文本等內(nèi)容的各種其他字符。
UTF-8 與 ASCII –有什么區(qū)別?
UTF-8 將 ASCII 字符集擴(kuò)展為使用 8 位碼位,最多允許 256 個(gè)不同的字符。
這意味著 UTF-8 可以表示所有可打印的 ASCII 字符,以及不可打印的字符。
UTF-8 還包括各種其他國(guó)際字符,如中文字符和阿拉伯字符。
如何在網(wǎng)頁中使用 UTF-8 – HTML UTF-8 示例
現(xiàn)在是容易的部分。你實(shí)際上并不需要知道它是如何工作的(盡管我一會(huì)兒會(huì)告訴你。您可以在 HTML 代碼中配置 UTF-8 字符編碼,并在代碼部分中使用一行 HTML:<head>
說到這里,讓我解釋一下 UTF-8 是如何工作的,以及為什么它是一個(gè)如此出色的編碼方案。
UTF-8 編碼的工作原理,以及每個(gè)字符使用的存儲(chǔ)量
用 UTF-8 表示字符時(shí),每個(gè)代碼點(diǎn)都由一個(gè)或多個(gè)字節(jié)的序列表示。使用的字節(jié)數(shù)取決于字符所表示的代碼點(diǎn)。以下是使用范圍的細(xì)分:
ASCII 范圍 (0-127) 中的碼位由單個(gè)字節(jié)表示
范圍 (128-2047) 中的碼位由兩個(gè)字節(jié)表示
范圍 (2048-65535) 中的碼位由三個(gè)字節(jié)表示
和范圍 (65536-1114111) 中的碼位由四個(gè)字節(jié)表示。(這似乎有很多可能的字符,但請(qǐng)記住,僅在中文中,就有100,000個(gè)字符。
UTF-8 序列的第一個(gè)字節(jié)稱為“前導(dǎo)字節(jié)”。前導(dǎo)字節(jié)提供有關(guān)序列中有多少字節(jié)以及字符的代碼點(diǎn)值的信息。
單字節(jié)序列的前導(dǎo)字節(jié)始終在 (0-127) 范圍內(nèi)。雙字節(jié)序列的前導(dǎo)字節(jié)在范圍 (194-223) 中。三字節(jié)序列的前導(dǎo)字節(jié)在范圍 (224-239) 中。四字節(jié)序列的前導(dǎo)字節(jié)在范圍 (240-247) 中。
序列中的其余字節(jié)稱為“尾隨字節(jié)”。雙字節(jié)序列的尾隨字節(jié)在范圍 (128-191) 中。三字節(jié)序列的尾隨字節(jié)在范圍 (128-191) 中。四字節(jié)序列的尾隨字節(jié)在范圍 (128-191) 中。
可以通過查看前導(dǎo)字節(jié)和尾隨字節(jié)來計(jì)算字符的代碼點(diǎn)值。對(duì)于單字節(jié)序列,代碼點(diǎn)值等于引線字節(jié)的值。
對(duì)于雙字節(jié)序列,代碼點(diǎn)值等于 ((前導(dǎo)字節(jié) - 194) * 64) +(尾隨字節(jié) - 128)。
對(duì)于三字節(jié)序列,代碼點(diǎn)值等于 ((前導(dǎo)字節(jié) - 224) * 4096) + ((尾隨字節(jié) 1 - 128) * 64) +(尾隨字節(jié) 2 - 128)。
對(duì)于四字節(jié)序列,代碼點(diǎn)值等于 ((前導(dǎo)字節(jié) - 240) * 262144) + ((尾隨字節(jié)1 - 128) * 4096) + ((尾隨字節(jié)2 - 128) * 64) + (尾隨字節(jié)3 - 128)。
UTF-8 是編碼的首選
同樣,UTF-8是一個(gè)超級(jí)高效的編碼系統(tǒng)。它可以表示各種字符,同時(shí)仍與 ASCII 兼容。這使其成為國(guó)際化軟件中使用的合理選擇。