日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

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

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

它誕生至今30多年了。

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

5分鐘讀懂Unicode

 

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

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

5分鐘讀懂Unicode

 

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


5分鐘讀懂Unicode

 

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

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

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

Python輸出

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

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

5分鐘讀懂Unicode

 


大小寫折疊

在Unicode世界中,大小寫并不是那么簡單:

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

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


排序

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

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

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

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


編碼方式

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

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

Unicode和國際化域名

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

瀏覽器和注冊商已針對此采取了幾種措施:

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

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

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


Punycode/域名代碼

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

5分鐘讀懂Unicode

 

這也適用于頂級域名 :比如中國的代碼為xn-fiqs8s

“用戶腳本”的問題

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

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


換行

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


文件系統(tǒng)

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


漢字統(tǒng)一

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

5分鐘讀懂Unicode

 

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

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

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


表情符號

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

表情符號的Unicode表示,包含你熟悉的LOVE HOTEL 和PILE OF POO


區(qū)域國旗符號

5分鐘讀懂Unicode

 

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


變體選擇器

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

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

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

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

分享到:
標(biāo)簽:Unicode
用戶無頭像

網(wǎng)友整理

注冊時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定