Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
nicode 聯盟(Unicode Consortium)
Unicode 聯盟(Unicode Consortium)開發了 Unicode 標準(Unicode Standard)。他們的目標是使用標準的 Unicode 轉換格式(即 UTF,全稱 Unicode Transformation Format)取代現有的字符集。
Unicode 標準是一個成功的創舉,在 HTML、XML、Java、JavaScript、E-mail、ASP、PHP 中都得到實現。Unicode 標準也得到許多操作系統和所有現代瀏覽器的支持。
Unicode 聯盟與領先的標準開發組織合作,這些組織有 ISO、W3C 和 ECMA。
Unicode 字符集
Unicode 可以由不同的字符集實現。最常用的編碼是 UTF-8 和 UTF-16:
字符集 | 描述 |
---|---|
UTF-8 | UTF8 中的字符可以是 1 到 4 字節長。UTF-8 可以代表 Unicode 標準中的任何字符。UTF-8 向后兼容 ASCII。UTF-8 是電子郵件和網頁的首選編碼。 |
UTF-16 | 16 位 Unicode 轉換格式是一種可變長度的 Unicode 字符編碼,能夠編碼整個 Unicode 指令表。UTF-16 主要用于操作系統和環境,如 Microsoft Windows、Java 和 .NET。 |
提示:Unicode 的前 128 個字符(與 ASCII 一一對應)使用一個與 ASCII二進制值相同的八位組進行編碼,使有效的 ASCII 文本在進行 UTF-8 編碼時也是有效的。
提示:所有的 HTML 4 處理器支持 UTF-8,所有的 HTML 5 和 XML 處理器支持 UTF-8 和 UTF-16!
HTML5 標準:Unicode UTF-8
因為 ISO-8859 中字符集大小是有限的,且在多語言環境中不兼容,所以 Unicode 聯盟開發了 Unicode 標準。
Unicode 標準覆蓋了(幾乎)所有的字符、標點符號和符號。
Unicode 使文本的處理、存儲和運輸,獨立于平臺和語言。
HTML-5 中默認的字符編碼是 UTF-8。
下面列出了一些 HTML5 支持的 UTF-8 字符集:
字符集 | 十進制 | 十六進制 |
---|---|---|
C0 控制與基本的 Latin(C0 Controls and Basic Latin) | 0-127 | 0000-007F |
C1 控制與 Latin-1 的補充(C1 Controls and Latin-1 Supplement) | 128-255 | 0080-00FF |
Latin 擴展 A(Latin Extended-A) | 256-383 | 0100-017F |
Latin 擴展 B(Latin Extended-B) | 384-591 | 0180-024F |
如果 HTML5 網頁使用不同于 UTF-8 的字符,則需要在 <meta> 標簽中指定,如下:
實例
<meta charset="ISO-8859-1">
如您還有不明白的可以在下面與我留言或是與我探討QQ群308855039,我們一起飛!
HTML 中,正確的字符編碼是什么?
HTML5 中默認的字符編碼是 UTF-8。
這并非總是如此。早期網絡的字符編碼是 ASCII 碼。
后來,從 HTML 2.0 到 HTML 4.01,ISO-8859-1 被認定為標準。
隨著 XML 和 HTML5 的出現,UTF-8 也終于到來了,解決了大量的字符編碼問題。
下面是關于字符編碼標準的簡短概述。
在開始的時候:ASCII
計算機信息(數字、文字、圖片)在電子中是以二進制 1 和 0(01000101)進行存儲的。
為了規范字母數字字符的存儲,創建了 ASCII(全稱 American Standard Code for Information Interchange)。它為每個存儲字符定義了一個獨特的二元 7 位數字,支持 0-9 數字,大/小寫英文字母(a-z、A-Z)和一些特殊的字符,比如 ! $ + - ( ) @ < > 。
由于 ASCII 使用一個字節(7 位表示字符,1 位表示傳輸奇偶控制),所以它只能表示 128 個不同的字符。這些字符中有 32 個被保留作為其他控制目的使用。
ASCII 的最大的缺點是,它排除了非英文字母。
ASCII 今天仍然在廣泛使用,尤其是在大型計算機系統中。
如需深入了解 ASCII,請查看完整的 ASCII 參考手冊。
在 Windows 中:ANSI
ANSI(也稱為 Windows-1252),是 Windows 95 及其之前的 Windows 系統中默認的字符集。
ANSI 是 ASCII 的擴展,它加入了國際字符。它使用一個完整的字節(8 位)來表示 256 個不同字符。
自從 ANSI 成為 Windows 中默認的字符集,所有的瀏覽器都支持 ANSI。
如需深入了解 ANSI,請查看完整的 ANSI 參考手冊。
在 HTML 4 中:ISO-8859-1
由于大多數國家使用 ASCII 以外的字符,在 HTML 2.0 標準中,默認的字符編碼更改為 ISO-8859-1。
ISO-8859-1 是 ASCII 的擴展,它加入了國際字符。與 ANSI 一樣,它使用一個完整的字節(8 位)來表示 256 個不同字符。
如果 HTML 4 網頁使用了不同于 ISO-8859-1 的字符集,則需要在 <meta> 標簽中指定,如下所示:
實例
<metahttp-equiv="Content-Type"content="text/html;charset=ISO-8859-8">
如需深入了解 ISO-8859-1,請查看完整的 ISO-8859-1 參考手冊。
在 HTML5 中:Unicode(UTF-8)
由于以上所列的字符集是有限的,在多語言環境中是不兼容的,所以 Unicode 聯盟(Unicode Consortium)開發了 Unicode 標準(Unicode Standard)。
Unicode 標準覆蓋了(幾乎)所有的字符、標點符號和符號。
Unicode 使文本的處理、存儲和運輸,獨立于平臺和語言。
HTML5 中默認的字符編碼是 UTF-8。
如您還有不明白的可以在下面與我留言或是與我探討QQ群308855039,我們一起飛!
當瀏覽器在網頁中檢測到 ISO-8859-1 時,通常默認為 ANSI,因為除了 ANSI 有 32 個額外的字符這一點,其他方面 ANSI 基本等同于 ISO-8859-1。
HTML5 中默認的字符集是 UTF-8。
所有的 HTML 4 處理器都支持 UTF-8,所有的 HTML5 和 XML 處理器都支持 UTF-8 和 UTF-16。
多互聯網新鮮資訊、工作奇淫技巧關注原創【飛魚在浪嶼】(日更新)
Unicode是涵蓋世界上大多數書寫系統。用在網絡,大多數操作系統,Java和.NET的標準編碼等。
在Unicode誕生之前,都有自己的編碼,它們都不同,而且不兼容編碼。而Unicode是幾乎所有字符的超集,因此可以用于互換信息。
它誕生至今30多年了。
在開始下文之前,如果遇到查詢unicode代碼的,可以使用工具類網站https://unicode.yunser.com/unicode
Unicode 為每個字符(例如a,?, ?,不和?)定義一個代碼/數字。從Unicode 6.2開始(http://www.unicode.org/versions/Unicode6.2.0/),共有109,976個代碼!
它還包括組合字符,諸如??之類,這些字符可以添加到其他字符中;這樣,Unicode不需要字母和重音的每種可能組合設置一個代碼。另一方面,Unicode的一般不關心字體或風格上的區別:比如下面兩個是同一種字符:
Unicode不只是字符集合。它還涵蓋了諸如UTF-8之類的標準編碼。小寫/大寫/標題大小寫映射,整理(排序),換行符,從右到左的腳本的渲染處理等。
因為Unicode是其他編碼的超集,所以它有時包括同一個字符,但是卻有多個不同的代碼,例如,以下三個:
python輸出
為了使它們在相等性測試等中被視為相同的字符串,您應該通過Unicode規范(http://unicode.org/reports/tr15/)運行所有輸入。最常見的形式是 NFC(Normalisation Form C),它盡可能使用預先組合字符,并如果存在多個,則一個嚴格的順序定義這變音符號。NFD D(Normalisation Form D)則盡可能撰寫1個字符。只要您保持一致,使用哪種形式都沒有關系。NFD通常更快(代碼點更少),建議通過NFD運行輸入,并通過NFC輸出。
Compatibility decomposition/兼容性分解(NFKC,compatibility decomposition + canonical composition)會把?,Ⅸ和甚至?映射為為“FFI”,“IX”和“5”分別。搜索文本時,這種NFKC規范化功能會起到幫助。
在Unicode世界中,大小寫并不是那么簡單:
為了確保您的代碼能夠處理這些情況以及任何新的情況,Unicode提供了 一種單向 “ casefold”操作,該操作允許不區分大小寫的比較。
排序(或排序規則)是特定于語言環境的,并且像大小寫一樣充滿特殊性:
僅通過二進制比較進行排序是不夠的。而且,代碼點通常也不是明智的。幸運的是,Unicode指定了一種 可高度自定義的歸類算法,該算法涵蓋了所有邊緣情況,并且做了一些巧妙的工作以使其變得相當快。這是一個示例:2
該UCA可以把“10”和“2”視為數值,如排序“10”“放在“2”后面?” 。把“?”視為字符串“問號”。
大端序有UTF-8,UTF-16和UTF-32。每種編碼都保證幾乎每個碼點和字節序列的可逆映射。
國際字符 給域名帶來了一個大問題。就像 I (I 0049 拉丁文大寫 I)和 l(l 006C拉丁L的小寫) 看起來很相似一樣,Unicode除了增加了許多不可見的控制字符,空格字符和從右到左的文本外,還將這個問題放大很多。
瀏覽器和注冊商已針對此采取了幾種措施:
RFC 3491定義了nameprep,一種在字符串可以在域名中使用之前對字符串進行大小寫折疊,規范化和清理的機制。如果使用了禁止的代碼點,這將刪除許多不可見的字符并拋出異常。
出于傳統原因,DNS不允許ASCII之外的擴展字符,因此Punycode是ASCII兼容的編碼方案。例如,café.com變為xn--caf-dma.com。所有Punycode編碼的域組件都可以通過其xn--前綴立即識別。
這也適用于頂級域名 :比如中國的代碼為xn-fiqs8s。
在Perl至少,一切(substr,length,index,reverse...)操作是以代碼點為準。但這通常不是你想要的,因為用戶認為像?這樣的字符實際上是兩個代碼點(y + ??)。
甚至看似沒問題的東西,例如printf "%-10s", $str完全中斷組合字符,全角字符(例如中文/日文)或零角字符的操作。
一旦涉及到Unicode ,換行(或自動換行)就變得異常復雜。您必須考慮各種不間斷和不間斷的控制和空格字符,每種語言中的標點符號(例如?和?引號或數字中使用的句號或逗號)以及每個字符的寬度。
當您使用Unicode字符串作為文件或目錄名稱時,所有操作都不好用。使用什么編碼?使用什么API?(Windows有兩種,一種使用Unicode,另一種嘗試使用與語言環境相關的編碼)。Mac OSX文件系統則會執行規范化,例如對文件名執行NFD。如果您的平臺不了解分解后的Unicode,則可能會出現問題。
漢字是中文,日文(漢字)以及韓文和越南文的共同特征。根據腳本的不同,許多腳本都有獨特的視覺外觀,但是Unicode出于簡化和性能的原因將它們統一為一個代碼點(示例)。
這引起了爭議,因為角色的視覺形式可能有意義;可能不會向用戶顯示他們的國家/地區版本,而是其他國家/地區的版本。在某些情況下,它們看起來可能非常不同(例如,直)。正如西方名稱的變化(例如“ John”或“ Jon”)一樣,日語名稱可能使用Unicode無法提供的特定字形變體,因此人們實際上無法以自己喜歡的方式來寫自己的名字!
實際上,用戶選擇一種字體以其想要的樣式呈現字形,無論是日語還是中文。變體選擇器(參見下文)是解決該問題的另一種方法。
由于政治和遺留原因(與舊字符集兼容),Unicode不會嘗試統一簡體和繁體中文。
Unicode 6.0版增加了722個“表情符號”字符,這些表情符號通常在日語手機上使用,但最近在Mac OS X(Lion),Gmail,iPhone和Windows Phone 7中使用。某些字體可能選擇將其呈現為全彩色表情符號。 ; 有些則可能根本不支持他們。
表情符號的Unicode表示,包含你熟悉的LOVE HOTEL 和PILE OF POO
Unicode 6.0的表情符號為許多國家(地區)標志引入了符號,但并不是全部國家。作為一種可選方案,范圍U + 1F1E6 .. U + 1F1FF 定義了從A到Z的符號。如果該范圍中的兩個符號形成了ISO-3166-1國家代碼(例如,法國的“ FR”),則渲染器可以顯示為國旗!
變體選擇器是代碼點,可更改渲染字符之前的字符方式。有256個,它們占據的范圍為U + FE00 .. U + FE0F 和U + E0100.. U + E01EF加上U + 180B,U + 180C和U + 180D。
它們對于蒙古語腳本來說是必不可少的,蒙古語腳本具有不同的字形形式,具體取決于其在單詞中的位置,單詞的性別,附近有哪些字母,單詞是否為外國單詞以及現代與傳統拼字法(詳細信息)。
預計這些將用于提供由Han Unification統一的字形的變體。
它們還用于更深奧的事物,例如數學運算符的襯線版本。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。