整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          HTML Unicode(UTF-8)參考手冊(cè)

          HTML Unicode(UTF-8)參考手冊(cè)

          nicode 聯(lián)盟(Unicode Consortium)

          Unicode 聯(lián)盟(Unicode Consortium)開(kāi)發(fā)了 Unicode 標(biāo)準(zhǔn)(Unicode Standard)。他們的目標(biāo)是使用標(biāo)準(zhǔn)的 Unicode 轉(zhuǎn)換格式(即 UTF,全稱 Unicode Transformation Format)取代現(xiàn)有的字符集。

          Unicode 標(biāo)準(zhǔn)是一個(gè)成功的創(chuàng)舉,在 HTML、XML、Java、JavaScript、E-mail、ASP、PHP 中都得到實(shí)現(xiàn)。Unicode 標(biāo)準(zhǔn)也得到許多操作系統(tǒng)和所有現(xiàn)代瀏覽器的支持。

          Unicode 聯(lián)盟與領(lǐng)先的標(biāo)準(zhǔn)開(kāi)發(fā)組織合作,這些組織有 ISO、W3C 和 ECMA。


          Unicode 字符集

          Unicode 可以由不同的字符集實(shí)現(xiàn)。最常用的編碼是 UTF-8 和 UTF-16:

          字符集描述
          UTF-8UTF8 中的字符可以是 1 到 4 字節(jié)長(zhǎng)。UTF-8 可以代表 Unicode 標(biāo)準(zhǔn)中的任何字符。UTF-8 向后兼容 ASCII。UTF-8 是電子郵件和網(wǎng)頁(yè)的首選編碼。
          UTF-1616 位 Unicode 轉(zhuǎn)換格式是一種可變長(zhǎng)度的 Unicode 字符編碼,能夠編碼整個(gè) Unicode 指令表。UTF-16 主要用于操作系統(tǒng)和環(huán)境,如 Microsoft Windows、Java 和 .NET。

          提示:Unicode 的前 128 個(gè)字符(與 ASCII 一一對(duì)應(yīng))使用一個(gè)與 ASCII二進(jìn)制值相同的八位組進(jìn)行編碼,使有效的 ASCII 文本在進(jìn)行 UTF-8 編碼時(shí)也是有效的。

          提示:所有的 HTML 4 處理器支持 UTF-8,所有的 HTML 5 和 XML 處理器支持 UTF-8 和 UTF-16!


          HTML5 標(biāo)準(zhǔn):Unicode UTF-8

          因?yàn)?ISO-8859 中字符集大小是有限的,且在多語(yǔ)言環(huán)境中不兼容,所以 Unicode 聯(lián)盟開(kāi)發(fā)了 Unicode 標(biāo)準(zhǔn)。

          Unicode 標(biāo)準(zhǔn)覆蓋了(幾乎)所有的字符、標(biāo)點(diǎn)符號(hào)和符號(hào)。

          Unicode 使文本的處理、存儲(chǔ)和運(yùn)輸,獨(dú)立于平臺(tái)和語(yǔ)言。

          HTML-5 中默認(rèn)的字符編碼是 UTF-8。

          下面列出了一些 HTML5 支持的 UTF-8 字符集:

          字符集十進(jìn)制十六進(jìn)制
          C0 控制與基本的 Latin(C0 Controls and Basic Latin)0-1270000-007F
          C1 控制與 Latin-1 的補(bǔ)充(C1 Controls and Latin-1 Supplement)128-2550080-00FF
          Latin 擴(kuò)展 A(Latin Extended-A)256-3830100-017F
          Latin 擴(kuò)展 B(Latin Extended-B)384-5910180-024F

          如果 HTML5 網(wǎng)頁(yè)使用不同于 UTF-8 的字符,則需要在 <meta> 標(biāo)簽中指定,如下:

          實(shí)例

          <meta charset="ISO-8859-1">

          如您還有不明白的可以在下面與我留言或是與我探討QQ群308855039,我們一起飛!

          HTML 中,正確的字符編碼是什么?

          HTML5 中默認(rèn)的字符編碼是 UTF-8。

          這并非總是如此。早期網(wǎng)絡(luò)的字符編碼是 ASCII 碼。

          后來(lái),從 HTML 2.0 到 HTML 4.01,ISO-8859-1 被認(rèn)定為標(biāo)準(zhǔn)。

          隨著 XML 和 HTML5 的出現(xiàn),UTF-8 也終于到來(lái)了,解決了大量的字符編碼問(wèn)題。

          下面是關(guān)于字符編碼標(biāo)準(zhǔn)的簡(jiǎn)短概述。


          在開(kāi)始的時(shí)候:ASCII

          計(jì)算機(jī)信息(數(shù)字、文字、圖片)在電子中是以二進(jìn)制 1 和 0(01000101)進(jìn)行存儲(chǔ)的。

          為了規(guī)范字母數(shù)字字符的存儲(chǔ),創(chuàng)建了 ASCII(全稱 American Standard Code for Information Interchange)。它為每個(gè)存儲(chǔ)字符定義了一個(gè)獨(dú)特的二元 7 位數(shù)字,支持 0-9 數(shù)字,大/小寫(xiě)英文字母(a-z、A-Z)和一些特殊的字符,比如 ! $ + - ( ) @ < > 。

          由于 ASCII 使用一個(gè)字節(jié)(7 位表示字符,1 位表示傳輸奇偶控制),所以它只能表示 128 個(gè)不同的字符。這些字符中有 32 個(gè)被保留作為其他控制目的使用。

          ASCII 的最大的缺點(diǎn)是,它排除了非英文字母。

          ASCII 今天仍然在廣泛使用,尤其是在大型計(jì)算機(jī)系統(tǒng)中。

          如需深入了解 ASCII,請(qǐng)查看完整的 ASCII 參考手冊(cè)。


          在 Windows 中:ANSI

          ANSI(也稱為 Windows-1252),是 Windows 95 及其之前的 Windows 系統(tǒng)中默認(rèn)的字符集。

          ANSI 是 ASCII 的擴(kuò)展,它加入了國(guó)際字符。它使用一個(gè)完整的字節(jié)(8 位)來(lái)表示 256 個(gè)不同字符。

          自從 ANSI 成為 Windows 中默認(rèn)的字符集,所有的瀏覽器都支持 ANSI。

          如需深入了解 ANSI,請(qǐng)查看完整的 ANSI 參考手冊(cè)。


          在 HTML 4 中:ISO-8859-1

          由于大多數(shù)國(guó)家使用 ASCII 以外的字符,在 HTML 2.0 標(biāo)準(zhǔn)中,默認(rèn)的字符編碼更改為 ISO-8859-1。

          ISO-8859-1 是 ASCII 的擴(kuò)展,它加入了國(guó)際字符。與 ANSI 一樣,它使用一個(gè)完整的字節(jié)(8 位)來(lái)表示 256 個(gè)不同字符。

          如果 HTML 4 網(wǎng)頁(yè)使用了不同于 ISO-8859-1 的字符集,則需要在 <meta> 標(biāo)簽中指定,如下所示:

          實(shí)例

          <metahttp-equiv="Content-Type"content="text/html;charset=ISO-8859-8">

          如需深入了解 ISO-8859-1,請(qǐng)查看完整的 ISO-8859-1 參考手冊(cè)。


          在 HTML5 中:Unicode(UTF-8)

          由于以上所列的字符集是有限的,在多語(yǔ)言環(huán)境中是不兼容的,所以 Unicode 聯(lián)盟(Unicode Consortium)開(kāi)發(fā)了 Unicode 標(biāo)準(zhǔn)(Unicode Standard)。

          Unicode 標(biāo)準(zhǔn)覆蓋了(幾乎)所有的字符、標(biāo)點(diǎn)符號(hào)和符號(hào)。

          Unicode 使文本的處理、存儲(chǔ)和運(yùn)輸,獨(dú)立于平臺(tái)和語(yǔ)言。

          HTML5 中默認(rèn)的字符編碼是 UTF-8。

          如您還有不明白的可以在下面與我留言或是與我探討QQ群308855039,我們一起飛!

          當(dāng)瀏覽器在網(wǎng)頁(yè)中檢測(cè)到 ISO-8859-1 時(shí),通常默認(rèn)為 ANSI,因?yàn)槌?ANSI 有 32 個(gè)額外的字符這一點(diǎn),其他方面 ANSI 基本等同于 ISO-8859-1。

          HTML5 中默認(rèn)的字符集是 UTF-8。

          所有的 HTML 4 處理器都支持 UTF-8,所有的 HTML5 和 XML 處理器都支持 UTF-8 和 UTF-16。

          多互聯(lián)網(wǎng)新鮮資訊、工作奇淫技巧關(guān)注原創(chuàng)【飛魚(yú)在浪嶼】(日更新)


          Unicode是涵蓋世界上大多數(shù)書(shū)寫(xiě)系統(tǒng)。用在網(wǎng)絡(luò),大多數(shù)操作系統(tǒng),Java和.NET的標(biāo)準(zhǔn)編碼等。

          在Unicode誕生之前,都有自己的編碼,它們都不同,而且不兼容編碼。而Unicode是幾乎所有字符的超集,因此可以用于互換信息。

          它誕生至今30多年了。

          在開(kāi)始下文之前,如果遇到查詢unicode代碼的,可以使用工具類網(wǎng)站https://unicode.yunser.com/unicode

          Unicode 為每個(gè)字符(例如a,?, ?,不和?)定義一個(gè)代碼/數(shù)字。從Unicode 6.2開(kāi)始(http://www.unicode.org/versions/Unicode6.2.0/),共有109,976個(gè)代碼!

          它還包括組合字符,諸如??之類這些字符可以添加到其他字符中;這樣,Unicode不需要字母和重音的每種可能組合設(shè)置一個(gè)代碼。另一方面,Unicode的一般不關(guān)心字體或風(fēng)格上的區(qū)別:比如下面兩個(gè)是同一種字符:

          Unicode不只是字符集合。它還涵蓋了諸如UTF-8之類的標(biāo)準(zhǔn)編碼。小寫(xiě)/大寫(xiě)/標(biāo)題大小寫(xiě)映射,整理(排序),換行符,從右到左的腳本的渲染處理等。


          通用歸一化/消除重復(fù)性

          因?yàn)閁nicode是其他編碼的超集,所以它有時(shí)包括同一個(gè)字符,但是卻有多個(gè)不同的代碼,例如,以下三個(gè):

          • 帶環(huán)的? 拉丁大寫(xiě)字母A(U + 00C5)
          • 一個(gè)長(zhǎng)度計(jì)量單位,一單位等于0.1nm(U + 212B)
          • u'\u0041\u030a' , 大寫(xiě)拉丁字母 A(U + 0041) + ?? 組合鍵(U + 030A)

          python輸出

          為了使它們?cè)谙嗟刃詼y(cè)試等中被視為相同的字符串,您應(yīng)該通過(guò)Unicode規(guī)范(http://unicode.org/reports/tr15/)運(yùn)行所有輸入。最常見(jiàn)的形式是 NFC(Normalisation Form C),它盡可能使用預(yù)先組合字符,并如果存在多個(gè),則一個(gè)嚴(yán)格的順序定義這變音符號(hào)。NFD D(Normalisation Form D則盡可能撰寫(xiě)1個(gè)字符。只要您保持一致,使用哪種形式都沒(méi)有關(guān)系。NFD通常更快(代碼點(diǎn)更少),建議通過(guò)NFD運(yùn)行輸入,并通過(guò)NFC輸出。

          Compatibility decomposition/兼容性分解(NFKC,compatibility decomposition + canonical composition會(huì)把?,Ⅸ和甚至?映射為為“FFI”,“IX”和“5”分別。搜索文本時(shí),這種NFKC規(guī)范化功能會(huì)起到幫助。


          大小寫(xiě)折疊

          在Unicode世界中,大小寫(xiě)并不是那么簡(jiǎn)單:

          • 有些字符串在更改大小寫(xiě)時(shí)實(shí)際上會(huì)更改長(zhǎng)度:?將大寫(xiě)字母更改為“ SS”。
          • 小號(hào)拉丁小寫(xiě)字母渴望著應(yīng)為“s”和“S”在不區(qū)分大小寫(xiě)的比較被看作是相等的。
          • Σ希臘大寫(xiě)字母 Sigma有兩種小寫(xiě)形式: 單詞的開(kāi)頭或中間寫(xiě)成σ,以及 ?在單詞的結(jié)尾。
          • 在希臘語(yǔ)中,若一個(gè)單字的最末一個(gè)字母是sigma,要把該字母寫(xiě)成 ?。大寫(xiě)Σ可以表示: 數(shù)學(xué)上的求和符號(hào)。 粒子物理學(xué)中的一類重子。 小寫(xiě)σ可以表示: σ鍵
          • 外殼大多是在地區(qū)之間基本一致,但土耳其是個(gè)例外:它既有一個(gè)點(diǎn)線和帶點(diǎn)我,在這兩個(gè)小寫(xiě)和大寫(xiě)。

          為了確保您的代碼能夠處理這些情況以及任何新的情況,Unicode提供了 一種單向 “ casefold”操作,該操作允許不區(qū)分大小寫(xiě)的比較。


          排序

          排序(或排序規(guī)則)是特定語(yǔ)言環(huán)境的,并且像大小寫(xiě)一樣充滿特殊性:

          • 德國(guó)和瑞典都有 ?和?,但是它們排序不同。德國(guó)將它們視為相同的字母變體沒(méi)有變音符號(hào)(即“a? bcdefghijklmno ?pqrstuvwxyz”),而瑞典認(rèn)為在年底這些新的字母,并把它們放在最后('ABCDEFGHIJKLMNOPQRSTUVWXYZ ??)務(wù)必按照用戶期望的順序?qū)κ挛镞M(jìn)行排序。
          • 排序也因應(yīng)用程序而異;例如,電話簿的排序方式通常與書(shū)本索引不同。
          • 對(duì)于漢字和其他表意文字,有許多可能的順序,例如拼音(注音),按筆劃計(jì)數(shù)等。
          • 可以根據(jù)用戶偏好(例如,大寫(xiě)優(yōu)先還是小寫(xiě)優(yōu)先)來(lái)排序

          僅通過(guò)二進(jìn)制比較進(jìn)行排序是不夠的。而且,代碼點(diǎn)通常也不是明智的。幸運(yùn)的是,Unicode指定了一種 可高度自定義的歸類算法,該算法涵蓋了所有邊緣情況,并且做了一些巧妙的工作以使其變得相當(dāng)快。這是一個(gè)示例:2

          該UCA可以把“10”和“2”視為數(shù)值,如排序“10”“放在“2”后面?” 。把“?”視為字符串“問(wèn)號(hào)”。


          編碼方式

          大端序有UTF-8,UTF-16和UTF-32。每種編碼都保證幾乎每個(gè)碼點(diǎn)和字節(jié)序列的可逆映射。

          • UTF-32非常簡(jiǎn)單:每個(gè)代碼點(diǎn)用四個(gè)字節(jié)。占用大量空間,不建議用作信息互換。
          • UTF-8在網(wǎng)絡(luò)上非常常見(jiàn)。它是面向字節(jié)的(無(wú)字節(jié)序問(wèn)題),處理得很好,與ASCII兼容,并且對(duì)于大多數(shù)為ASCII(例如HTML)的文本占用最小的空間。U + 0800和U + FFFF之間的代碼點(diǎn)(包括常用的CJKV 字符/ 中國(guó)日本韓國(guó)越南)將占用3個(gè)字節(jié)而不是2個(gè)字節(jié)。因此,UTF-16可能更節(jié)省空間。ASCII兼容性有助于允許UTF-8在不支持Unicode的腳本和進(jìn)程也能運(yùn)行。但是,如果這樣的系統(tǒng)嘗試對(duì)數(shù)據(jù)執(zhí)行任何操作(大小寫(xiě)轉(zhuǎn)換,子字符串,正則表達(dá)式),則該數(shù)據(jù)會(huì)被損壞。
          • Java,.NET和Windows使用UTF-16。它使用2個(gè)字節(jié)(16位)表示最常見(jiàn)的63K代碼點(diǎn),并使用4個(gè)字節(jié)表示不常見(jiàn)的1M代碼點(diǎn)(使用兩個(gè)“代理”代碼點(diǎn))。與通常的做法相反,UTF-16不是固定寬度的編碼。但是,只要不包含代理代碼點(diǎn),就可以將其視為一個(gè)獨(dú)立,從而可以加快字符串操作。UTF-16流通常以U + FEFF開(kāi)頭,以檢測(cè)流的字節(jié)序(字節(jié)順序)。否則,您可以通過(guò)'UTF-16BE'或'UTF-16LE'顯式編碼或解碼以指定字節(jié)序。

          Unicode和國(guó)際化域名

          國(guó)際字符 給域名帶來(lái)了一個(gè)大問(wèn)題。就像 I (I 0049 拉丁文大寫(xiě) I)和 l(l 006C拉丁L的小寫(xiě)) 看起來(lái)很相似一樣,Unicode除了增加了許多不可見(jiàn)的控制字符,空格字符和從右到左的文本外,還將這個(gè)問(wèn)題放大很多。

          瀏覽器和注冊(cè)商已針對(duì)此采取了幾種措施:

          • 許多頂級(jí)域名限制可以在域名中使用哪些字符。
          • 如果域包含來(lái)自多個(gè)腳本的字符和/或不屬于用戶首選語(yǔ)言之一的字符,則瀏覽器可以使用Punycode顯示該域(請(qǐng)參見(jiàn)下文)。
          • 國(guó)際化的國(guó)家/地區(qū)代碼,例如.рф(俄羅斯),僅接受西里爾字母名稱。

          名稱準(zhǔn)備/字符串準(zhǔn)備

          RFC 3491定義了nameprep,一種在字符串可以在域名中使用之前對(duì)字符串進(jìn)行大小寫(xiě)折疊,規(guī)范化和清理的機(jī)制。如果使用了禁止的代碼點(diǎn),這將刪除許多不可見(jiàn)的字符并拋出異常。


          Punycode/域名代碼

          出于傳統(tǒng)原因,DNS不允許ASCII之外的擴(kuò)展字符,因此Punycode是ASCII兼容的編碼方案。例如,café.com變?yōu)閤n--caf-dma.com。所有Punycode編碼的域組件都可以通過(guò)其xn--前綴立即識(shí)別。


          這也適用于頂級(jí)域名 :比如中國(guó)的代碼為xn-fiqs8s

          “用戶腳本”的問(wèn)題

          在Perl至少,一切(substr,length,index,reverse...)操作是以代碼點(diǎn)為準(zhǔn)。但這通常不是你想要的,因?yàn)橛脩粽J(rèn)為像?這樣的字符實(shí)際上是兩個(gè)代碼點(diǎn)(y + ??)。

          甚至看似沒(méi)問(wèn)題的東西,例如printf "%-10s", $str完全中斷組合字符,全角字符(例如中文/日文)或零角字符的操作。


          換行

          一旦涉及到Unicode ,換行(或自動(dòng)換行)就變得異常復(fù)雜。您必須考慮各種不間斷和不間斷的控制和空格字符,每種語(yǔ)言中的標(biāo)點(diǎn)符號(hào)(例如?和?引號(hào)或數(shù)字中使用的句號(hào)或逗號(hào))以及每個(gè)字符的寬度。


          文件系統(tǒng)

          當(dāng)您使用Unicode字符串作為文件或目錄名稱時(shí),所有操作都不好用。使用什么編碼?使用什么API?(Windows有兩種,一種使用Unicode,另一種嘗試使用與語(yǔ)言環(huán)境相關(guān)的編碼)。Mac OSX文件系統(tǒng)則會(huì)執(zhí)行規(guī)范化,例如對(duì)文件名執(zhí)行NFD。如果您的平臺(tái)不了解分解后的Unicode,則可能會(huì)出現(xiàn)問(wèn)題。


          漢字統(tǒng)一

          漢字是中文,日文(漢字)以及韓文和越南文的共同特征。根據(jù)腳本的不同,許多腳本都有獨(dú)特的視覺(jué)外觀,但是Unicode出于簡(jiǎn)化和性能的原因?qū)⑺鼈兘y(tǒng)一為一個(gè)代碼點(diǎn)(示例)。

          這引起了爭(zhēng)議,因?yàn)榻巧囊曈X(jué)形式可能有意義;可能不會(huì)向用戶顯示他們的國(guó)家/地區(qū)版本,而是其他國(guó)家/地區(qū)的版本。在某些情況下,它們看起來(lái)可能非常不同(例如,直)。正如西方名稱的變化(例如“ John”或“ Jon”)一樣,日語(yǔ)名稱可能使用Unicode無(wú)法提供的特定字形變體,因此人們實(shí)際上無(wú)法以自己喜歡的方式來(lái)寫(xiě)自己的名字!

          實(shí)際上,用戶選擇一種字體以其想要的樣式呈現(xiàn)字形,無(wú)論是日語(yǔ)還是中文。變體選擇器(參見(jiàn)下文)是解決該問(wèn)題的另一種方法。

          由于政治和遺留原因(與舊字符集兼容),Unicode不會(huì)嘗試統(tǒng)一簡(jiǎn)體和繁體中文。


          表情符號(hào)

          Unicode 6.0版增加了722個(gè)“表情符號(hào)”字符,這些表情符號(hào)通常在日語(yǔ)手機(jī)上使用,但最近在Mac OS X(Lion),Gmail,iPhone和Windows Phone 7中使用。某些字體可能選擇將其呈現(xiàn)為全彩色表情符號(hào)。 ; 有些則可能根本不支持他們。

          表情符號(hào)的Unicode表示,包含你熟悉的LOVE HOTEL 和PILE OF POO


          區(qū)域國(guó)旗符號(hào)

          Unicode 6.0的表情符號(hào)為許多國(guó)家(地區(qū))標(biāo)志引入了符號(hào),但并不是全部國(guó)家。作為一種可選方案,范圍U + 1F1E6 .. U + 1F1FF 定義了從A到Z的符號(hào)。如果該范圍中的兩個(gè)符號(hào)形成了ISO-3166-1國(guó)家代碼(例如,法國(guó)的“ FR”),則渲染器可以顯示為國(guó)旗!


          變體選擇器

          變體選擇器是代碼點(diǎn),可更改渲染字符之前的字符方式。有256個(gè),它們占據(jù)的范圍為U + FE00 .. U + FE0F 和U + E0100.. U + E01EF加上U + 180B,U + 180C和U + 180D。

          它們對(duì)于蒙古語(yǔ)腳本來(lái)說(shuō)是必不可少的,蒙古語(yǔ)腳本具有不同的字形形式,具體取決于其在單詞中的位置,單詞的性別,附近有哪些字母,單詞是否為外國(guó)單詞以及現(xiàn)代與傳統(tǒng)拼字法(詳細(xì)信息)。

          預(yù)計(jì)這些將用于提供由Han Unification統(tǒng)一的字形的變體。

          它們還用于更深?yuàn)W的事物,例如數(shù)學(xué)運(yùn)算符的襯線版本。


          主站蜘蛛池模板: 无码aⅴ精品一区二区三区| 精品一区二区三区自拍图片区| 国产一国产一区秋霞在线观看| 综合久久久久久中文字幕亚洲国产国产综合一区首 | 国产精品亚洲专区一区| 亚洲视频一区调教| 狠狠色婷婷久久一区二区| 国产一区二区三区免费看| 国模极品一区二区三区| 偷拍激情视频一区二区三区| 无码一区二区三区视频| 在线视频一区二区三区三区不卡| 麻豆精品一区二区综合av| 日本一区二区三区不卡在线视频| 亚洲一区二区三区写真| 美女视频一区三区网站在线观看| 亚洲av无码片区一区二区三区| 国产成人精品一区二区秒拍| 久久精品无码一区二区三区| 一本大道东京热无码一区| 国产亚洲日韩一区二区三区 | 国产成人久久精品麻豆一区| 一区二区免费国产在线观看| 内射白浆一区二区在线观看| 无码精品人妻一区二区三区影院| 精品在线一区二区三区| 亚洲国产精品第一区二区三区| 日本一区视频在线播放| 国产韩国精品一区二区三区| 在线精品国产一区二区三区| 国产精品视频一区二区三区无码| 搡老熟女老女人一区二区| 97人妻无码一区二区精品免费| 亚洲国产高清在线精品一区| 国产怡春院无码一区二区 | 亚洲成av人片一区二区三区| 亚洲AV日韩精品一区二区三区| 国产丝袜美女一区二区三区| 国产短视频精品一区二区三区| 国产精品无码一区二区三区不卡| 国产一区二区精品在线观看|