??xml version="1.0" encoding="utf-8" standalone="yes"?>
我想大家看看我的代码,l我一Ҏ见和.
]]>
但想了几天了,都没有一个合适的Ҏ来实?
?.....
今天先试着写了?找找感觉,接着再想?..
U+00000000 - U+0000007F: | 0 xxxxxxx | 0x - 7x | |
U+00000080 - U+000007FF: | 110 xxxxx 10 xxxxxx | Cx 8x - Dx Bx | |
U+00000800 - U+0000FFFF: | 1110 xxxx 10 xxxxxx 10 xxxxxx | Ex 8x 8x - Ex Bx Bx | |
U+00010000 - U+001FFFFF: | 11110 xxx 10 xxxxxx 10 xxxxxx 10 xxxxxx | F0 8x 8x 8x - F7 Bx Bx Bx | 很少?/td> |
U+00200000 - U+03FFFFFF: | 111110 xx 10 xxxxxx 10 xxxxxx 10 xxxxxx 10 xxxxxx | F8 8x 8x 8x 8x - FB Bx Bx Bx Bx | |
U+04000000 - U+7FFFFFFF: | 1111110 x 10 xxxxxx 10 xxxxxx 10 xxxxxx 10 xxxxxx 10 xxxxxx | FC 8x 8x 8x 8x 8x - FD Bx Bx Bx Bx Bx |
* FE FF从未在编码中出现q?
* 除第一个字节外,其余字节都在
0x80 ?0xBF范围?每个字符的v始位|用0xC0-0xD0,0xE0,0xF0{可以确?验证前四位或八位),不在q一范围的即为单字节字符.凡是?span style="color: rgb(153, 0, 0); font-weight: bold;">0x80 ?0xBF开头的都是后字节,计数旉要蟩q?
* Unicode是一U编码表,只将字符指定l某一数字(Unicode做得q要更多一?比如提供比较及显C等很多法{等);
而UTF-8是编码方?是定义如何表Cƈ存储指定~码的格?
* UTF-8~码转换为Unicode~码: 所有标志位去除,剩余位数若不_在高位补?凑32位即?
* Unicode~码转换为UTF-8~码: 从低位开?每取6位补两个?0,不6?不算高位?)则按字节长度补相应的字符标志??10?110{?/font>
[来源: http://icu.sourceforge.net/docs/papers/forms_of_unicode/]
UTF-8(ISO 10646-1) 有以下特?
下列字节串用来表CZ个字W? 用到哪个串取决于该字W在 Unicode 中的序号.
U-00000000 - U-0000007F: | 0xxxxxxx |
U-00000080 - U-000007FF: | 110xxxxx 10xxxxxx |
U-00000800 - U-0000FFFF: | 1110xxxx 10xxxxxx 10xxxxxx |
U-00010000 - U-001FFFFF: | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx |
U-00200000 - U-03FFFFFF: | 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx |
U-04000000 - U-7FFFFFFF: | 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx |
xxx 的位|由字符~码数的二进制表C的位填? 靠右的 x h少的特D意? 只用最短的那个_表达一个字W编码数的多字节? 注意在多字节串中, W一个字节的开?1"的数目就是整个串中字节的数目.
例如: Unicode 字符 U+00A9 = 1010 1001 (版权W号) ?UTF-8 里的~码?
11000010 10101001 = 0xC2 0xA9
而字W?U+2260 = 0010 0010 0110 0000 (不等? ~码?
11100010 10001001 10100000 = 0xE2 0x89 0xA0
q种~码的官方名字拼写ؓ UTF-8, 其中 UTF 代表 UCS Transformation Format. 请勿在Q何文中用其他名?(比如 utf8 ?UTF_8) 来表C?UTF-8, 当然除非你指的是一个变量名而不是这U编码本w?
在大U?1993 q之后开发的大多数现代编E语a都有一个特别的数据cd, 叫做 Unicode/ISO 10646-1 字符. ?Ada95 中叫 Wide_Character, ?Java 中叫 char.
ISO C 也详l说明了处理多字节编码和宽字W?(wide characters) 的机?
1994 q?9 ?Amendment 1 to ISO C
发表时又加入了更? q些机制主要是ؓ各类东亚~码而设计的,
它们比处?UCS 所需的要健壮得多. UTF-8 ?ISO C
标准调用多字节字W串的编码的一个例? wchar_t
cd可以用来存放 Unicode 字符.
[来源: http://www.linuxforum.net/books/UTF-8-Unicode.html]
UTF-8 |
|
---|---|
UTF-8N |
|
UTF-16 |
|
UTF-16BE |
|
UTF-16LE |
|
UTF-32 |
|
UTF-32BE |
|
UTF-32LE |
|
Note: The italicized names are not yet registered, but are useful for reference.[from: http://icu.sourceforge.net/docs/papers/forms_of_unicode/]