2010-09-07 18 views
0

常用的OFC,克林貢犯規數:-)是否有使用UTF-8編碼時每個字符需要三個或更多字節的語言?哪個?

謝謝,夥計們,讓我跑willItFit()測試用例

好了,現在我想通了,什麼節能字節使用UTF-8導致比解決更多的問題,再次感謝

+2

你知不知道正在開發的Unicode標準的時候,有一個正式的提案,克林貢語字母表補充呢? – 2010-09-07 20:58:17

+0

是的,因此這個笑話形式排除了各種深奧的語言:) – 2010-09-07 21:10:58

回答

9

需要3個字節的字符在U + 0800和所有後續字符開始,所以這是大量的潛在字符。這包括東亞文字,如日文,中文,韓文和泰文。

有關腳本範圍的完整列表,請參閱Unicode's block data。只有這些模塊可與1首或2個字節表示,從所有其它塊字符需要3或4個字節:

0000..007F Basic Latin 
0080..00FF Latin-1 Supplement 
0100..017F Latin Extended-A 
0180..024F Latin Extended-B 
0250..02AF IPA Extensions 
02B0..02FF Spacing Modifier Letters 
0300..036F Combining Diacritical Marks 
0370..03FF Greek and Coptic 
0400..04FF Cyrillic 
0500..052F Cyrillic Supplement 
0530..058F Armenian 
0590..05FF Hebrew 
0600..06FF Arabic 
0700..074F Syriac 
0750..077F Arabic Supplement 
0780..07BF Thaana 
07C0..07FF NKo 
0

存在使用超過2個字節的許多亞洲語言的表示。雖然他們可能並不特別需要,但日語和韓語(至少)通常以多字節形式表示。

4

這裏,我們去:

那麼前128個字符(US-ASCII) 需要一個字節。接下來的1,920個 個字符需要兩個字節進行編碼。 這包括拉丁字母與 變音符號和希臘字符, 西里爾文,科普特語,亞美尼亞語,希伯來語, 阿拉伯語,敘利亞文和Tāna字母。 需要三個字節的其餘的 基本多語言平面(其中 幾乎包含 常用的所有字符)。對於 Unicode其他平面中的 字符需要4個字節,其中包括不常見的CJK 字符和各種歷史 腳本。

更多細節:

http://en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes,基本多文種平面,從爲0x8000代碼。

一些示例:印度語腳本,泰文,菲律賓文字,平假名,片假名。所以所有的東亞腳本和其他一些。

2

你甚至需要三個字節只是英文。例如,排版正確的撇號以UTF-8編碼爲0xE2 0x80 0x99,開頭引號爲0xE2 0x80 0x9C,並且結束引號爲0xE2 0x80 0x9D。省略號是0xE2 0x80 0xA6。這甚至不談論所有不同的破折號,空格或英寸和英尺的標誌。

「這是有點難以不撇號的幫助&hellip寫英文;」

+0

任何想法爲什麼花了這麼長的時間才能得到正確的引號,而Macintosh在1984年擁有它們呢? – supercat 2011-07-23 06:14:16

相關問題