青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Kisser Leon

這個kisser不太冷
posts - 100, comments - 102, trackbacks - 0, articles - 0

unicode學(xué)習(xí)小結(jié)

Posted on 2007-03-15 21:19 kk 閱讀(1552) 評論(1)  編輯 收藏 引用 所屬分類: IT

學(xué)習(xí) unicode 也有一段時間了,雖然說沒有學(xué)得很好,但是卻是學(xué)到了許多東西啊,所以稍微小結(jié)一下,免得忘了,呵呵。很早就接觸過 unicode 這個詞了。不過以前太天真了,以為 unicode 是一件非常簡單的事情,很容易就解決了。只要用 TCHAR 代替 CHAR ,在所有的字符串前面加上 TEXT ,然后在 vc 里面 Preprocessor definitions 加上 _UNICODE UNICODE OK 了。實際上,僅僅這樣,還有很多疑惑不能解決。

1、 Windows XP 完全使用 unicode 開發(fā),那為什么在 xp 下還會有亂碼呢?

內(nèi)碼的存在,內(nèi)碼不兼容 unicode 。或者要解釋的不是unicode,而當(dāng)前不支持該編碼。

2、 為什么有 UTF-8 、 16 、 32 ?為什么說 UTF-8 unicode 的呢? unicode 不都是 16 位的嗎?

為了兼容現(xiàn)在的編碼。

3、 codepage 是什么東西?為什么存在?

4、 什么是國際化、本地化?為什么國際化、本地化那么困難?

Locale 。舉個簡單的例子:不同地方的日期的顯示格式不同。

5、 DBCS 是什么咚咚?它與 UTF-8 , unicode 有什么聯(lián)系?

UTF-8 是屬于 unicode 規(guī)范的,而 DBCS 不是。 UTF-8 是不定字節(jié)的(從一字節(jié)到六字節(jié)),而 DBCS 是雙字節(jié)的。 DBCS ASCII 同時存在來處理遠(yuǎn)東的一些字符(結(jié)合 codepage 來使用, GBK Big5 range 就有交錯的),而 UTF-8 unicode 規(guī)范的實現(xiàn),它包含了所有的字符。從 Windows2K 開始,從 Windows 系統(tǒng)的底層實現(xiàn),已經(jīng)全面基于 Unicode ,同時仍保證完全兼容 ANSI/DBCS 程序。

?

以下是對我這一階段學(xué)習(xí)的小結(jié):
一、
????????????????????
什么是 unicode ?

Unicode provides a unique number for every character,
no matter what the platform,
no matter what the program,
no matter what the language.

歷史上有兩個組織想獨立創(chuàng)立單一字符集,一個是國際標(biāo)準(zhǔn)化組織( ISO )的 ISO 10646 ,另一個是由很多大企業(yè)( Apple 、 Compaq 、 HP 、 IBM 、 Microsoft Oracle 等)組成的協(xié)會組織的 unicode 。 1991 年前后,他們合并了雙方的工作,統(tǒng)一了編碼表。雖然這兩個組織都還獨立的存在,但是他們的標(biāo)準(zhǔn)是兼容的。

Unicode 協(xié)會公布的 Unicode 標(biāo)準(zhǔn)嚴(yán)密地包含了 ISO 10646-1 實現(xiàn)級別 3 的基本多語言面。在兩個標(biāo)準(zhǔn)里所有的字符都在相同的位置并且有相同的名字。

Unicode 標(biāo)準(zhǔn)額外定義了許多與字符有關(guān)的語義符號學(xué),一般而言是對于實現(xiàn)高質(zhì)量的印刷出版系統(tǒng)的更好的參考。 Unicode 詳細(xì)說明了繪制某些語言 ( 比如阿拉伯語 ) 表達(dá)形式的算法,處理雙向文字 ( 比如拉丁與希伯來文混合文字 ) 的算法和排序與字符串比較所需的算法,以及其他許多東西。

另一方面 , ISO 10646 標(biāo)準(zhǔn) , 就象廣為人知的 ISO 8859 標(biāo)準(zhǔn)一樣 , 只不過是一個簡單的字符集表 . 它指定了一些與標(biāo)準(zhǔn)有關(guān)的術(shù)語 , 定義了一些編碼的別名 , 并包括了規(guī)范說明 , 指定了怎樣使用 UCS 連接其他 ISO 標(biāo)準(zhǔn)的實現(xiàn) , 比如 ISO 6429 ISO 2022. 還有一些與 ISO 緊密相關(guān)的 , 比如 ISO 14651 是關(guān)于 UCS 字符串排序的 .

考慮到 Unicode 標(biāo)準(zhǔn)有一個易記的名字 , 且在任何好的書店里的 Addison-Wesley 里有 , 只花費 ISO 版本的一小部分 , 且包括更多的輔助信息 , 因而它成為使用廣泛得多的參考也就不足為奇了 .

二、 ???????????????????? UTF-8 、 16 32

UTF Unicode Transformation Format

首先 UCS Unicode Char Set )和 Unicode 只是分配整數(shù)給字符的編碼表 . 現(xiàn)在存在好幾種將一串字符表示為一串字節(jié)的方法 . 最顯而易見的兩種方法是將 Unicode 文本存儲為 2 4 個字節(jié)序列的串 . 這兩種方法的正式名稱分別為 UCS-2 UTF-16 )和 UCS-4 UTF-32 . 除非另外指定 , 否則大多數(shù)的字節(jié)都是這樣的 (Bigendian convention). 將一個 ASCII Latin-1 的文件轉(zhuǎn)換成 UCS-2 只需簡單地在每個 ASCII 字節(jié)前插入 0x00. 如果要轉(zhuǎn)換成 UCS-4, 則必須在每個 ASCII 字節(jié)前插入三個 0x00.

Unix 下使用 UCS-2 ( UCS-4) 會導(dǎo)致非常嚴(yán)重的問題 . 用這些編碼的字符串會包含一些特殊的字符 , 比如 '\0' '/', 它們在 文件名和其他 C 庫函數(shù)參數(shù)里都有特別的含義 . 另外 , 大多數(shù)使用 ASCII 文件的 UNIX 下的工具 , 如果不進(jìn)行重大修改是無法讀取 16 位的字符的 . 基于這些原因 , 在文件名 , 文本文件 , 環(huán)境變量等地方 , UCS-2 不適合作為 Unicode 的外部編碼 .

ISO 10646-1 Annex R RFC 2279 里定義的 UTF-8 編碼沒有這些問題 . 它是在 Unix 風(fēng)格的操作系統(tǒng)下使用 Unicode 的明顯的方法 .

UTF-8 看起來不像是 unicode ,它只是作為一種過渡形態(tài)存在,作為新舊編碼之間交互的橋梁。雖然它是遵循 unicode 規(guī)范的,但它更像是 DBCS 的改善版,是一種 MBCS multi-byte char set )。顯然這個世界上不可能很快就完全 unicode UTF-8 還將會一直存在下去。 Window NT 操作系統(tǒng)的基本文本表示是 UTF-16 , WCHAR 是其基本數(shù)據(jù)類型。

UTF-8 以字節(jié)為編碼單元,沒有字節(jié)序的問題。 UTF-16 以兩個字節(jié)為編碼單元,在解釋一個 UTF-16 文本前,首先要弄清楚每個編碼單元的字節(jié)序。 Unicode 規(guī)范使用 BOM Byte Order Mark )來標(biāo)記字節(jié)順序。在 UCS 編碼中有一個叫做“ ZERO WIDTH NO-BREAK SPACE ”的字符,它的編碼是 FEFF 。而 FFFE UCS 中是不存在的字符。所以,如果接收到 FEFF 就表明這個字節(jié)流是 Big-Endian 的;如果是 FFFE 則是 little endian UTF-8 不需要用 BOM 來表明字節(jié)序,但可以用 BOM 來表明編碼方式。 FEFF UTF-8 編碼是 EF BB BF 。

以下就是 UTF-8 的模板

0x0000 - 0x007F 用一個字節(jié)表示 0xxxxxxx

0x0080 - 0x07FF 用兩個字節(jié)表示 110xxxxx 10xxxxxx

0x0800 - 0xFFFF 用三個字節(jié)表示 1110xxxx 10xxxxxx 10xxxxxx

舉個例子,如果你遇到了 11100110 10110001 10001001 01000001 這樣的字節(jié)流,首先你看第一個字節(jié)以 1110 開頭,即讀 3 個字節(jié)并按模板提取得到 0110 110001 001001( 去除模板標(biāo)志﹐再四字節(jié)四字節(jié)讀即 0x6c49) ,查 unicode 編碼表就是 " " , 而最后一個以 0 開頭就一定是一個字節(jié)了, 0x0041 ,也就是 "A"

三、 ???????????????????? 字符集、字符編碼、內(nèi)碼

字符必須編碼后才能被計算機處理。計算機使用的缺省編碼方式就是計算機的內(nèi)碼。像 ASCII GB2312 Big5 都是屬于字符編碼。當(dāng)然 UTF-8 、 16 也是一種字符編碼。而 unicode 則是一種規(guī)范。

GB2312 是大陸的字符編碼標(biāo)準(zhǔn),屬于國家標(biāo)準(zhǔn)。它是與 ASCII 碼兼容的。后來又有 GBK1.0 、 GB18030 等字符編碼標(biāo)準(zhǔn),這些都是向下兼容的,但橫向不兼容!比如 GB2312 Big5 在很多編碼上是重疊的,是不兼容的; Unicode GB 標(biāo)準(zhǔn)碼也是不兼容的。中文操作系統(tǒng)的內(nèi)碼是 GBK 編碼。

由于現(xiàn)有的大量程序和文檔都采用樂某種特定語言的編碼,例如 GBK windows 不可能不支持現(xiàn)有代碼,而全部采用 unicode !這就是為什么 windows 使用了內(nèi)碼機制。為了支持更多的地方語言文字, windows 還使用了 code page 機制以使 windows 能夠更方便的適應(yīng)不同地方的語言文字。 GBK 對應(yīng)的 code page CP936 , windows 代碼頁只支持單字節(jié)和雙字節(jié)編碼的。

GB2312-80 ,是中國大陸使用的國家標(biāo)準(zhǔn),其中一共編碼了 6763 個常用簡體漢字。 Big5 ,是臺灣使用的編碼標(biāo)準(zhǔn),編碼了中國臺灣使用的繁體漢字,大概有 8 千多個。 HKSCS ,是中國香港使用的編碼標(biāo)準(zhǔn),字體也是繁體,但跟 Big5 有所不同。

四、 ???????????????????? VC 中的 Unicode 編程

這個網(wǎng)上的資料有很多的,最重要的一個概念就是 T W , _UNICODE 、 UNICODE 等。這個理解起來感覺簡單很多,因為只要你在程序中都使用 Unicode 就好了。數(shù)據(jù)的傳輸、數(shù)據(jù)的保存、數(shù)據(jù)的使用、轉(zhuǎn)化都使用 Unicode (目前基本上都是使用 UTF-8 比較多吧)。當(dāng)然了,這里肯定還是會有編碼格式轉(zhuǎn)化的問題的,比如輸入的不是 Unicode ,輸出的不能是 Unicode 等。但只要你在程序中都使用 Unicode 就解決問題了。是不是我想得太簡單了?

?

上面這些東西,很多是我從網(wǎng)上摘抄下來的,也有少部分是我自己的理解。如果有什么不對的地方,敬請指教。如果有什么講的不清楚的、或者需要講一下的,請?zhí)岢鰜?。如果有什么希望能夠一起討論討論的,歡迎給我發(fā)郵件或回帖討論!

Feedback

# re: unicode學(xué)習(xí)小結(jié)  回復(fù)  更多評論   

2007-03-18 15:03 by 小熊
Double-byte Character Sets
A double-byte character set (DBCS), also known as an "expanded 8-bit character set", is an extended single-byte character set (SBCS), implemented as a code page. DBCSs were originally developed to extend the SBCS design to handle languages such as Japanese and Chinese. Some characters in a DBCS, including the digits and letters used for writing English, have single-byte code values. Other characters, such as Chinese ideographs or Japanese kanji, have double-byte code values. A DBCS can correspond either to a Windows code page or an OEM code page. A DBCS code page can also include a non-native code page, for example, an EBCDIC code page. For definitions of these code pages, see Code Pages.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/intl/unicode_9i79.asp

from MSDN
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            美女999久久久精品视频| 久久久水蜜桃| 欧美第一黄色网| 日韩视频精品在线观看| 欧美日韩高清一区| 欧美在线观看日本一区| 亚洲区中文字幕| 久久本道综合色狠狠五月| 亚洲国产精品久久久久秋霞蜜臀 | 欧美成在线观看| 久久av资源网站| aa国产精品| 欧美国产日韩二区| 久久精品亚洲热| 亚洲一区三区电影在线观看| 在线观看91久久久久久| 国产欧美日韩综合一区在线播放 | 亚洲国产成人高清精品| 欧美在线视频在线播放完整版免费观看| 韩国女主播一区| 国产日韩欧美在线视频观看| 欧美日韩一区在线| 欧美激情精品久久久久久久变态| 久久国产精品72免费观看| 欧美亚洲免费在线| 午夜免费日韩视频| 午夜国产精品视频免费体验区| 99国产精品视频免费观看| 亚洲精品久久嫩草网站秘色| 亚洲激情欧美激情| 亚洲另类一区二区| 99re这里只有精品6| 在线亚洲激情| 久久精品欧美| 欧美成人xxx| 国产精品yjizz| 国产婷婷精品| 亚洲欧洲在线一区| 亚洲午夜av在线| 久久久久久久久伊人| 久久综合久久久| 亚洲精品欧美日韩| 欧美在线播放| 噜噜噜在线观看免费视频日韩| 99视频一区二区三区| 欧美一区二区三区播放老司机 | 久久人人爽人人爽| 欧美激情精品久久久六区热门 | 美女在线一区二区| 欧美日韩成人一区| 一区二区三区不卡视频在线观看 | 亚洲一区二区三区在线视频| 欧美一区三区二区在线观看| 久久久美女艺术照精彩视频福利播放 | 亚洲高清三级视频| 亚洲欧美福利一区二区| 欧美日韩精选| 国产精品99久久久久久久女警| 久久国产高清| 亚洲欧美视频| 欧美激情一区二区三级高清视频| 狠狠色丁香久久婷婷综合_中| 欧美一乱一性一交一视频| 亚洲乱码国产乱码精品精天堂 | 最新日韩在线视频| 另类春色校园亚洲| 久久国产精品一区二区三区| 国产精品素人视频| 久久九九久精品国产免费直播| 亚洲淫片在线视频| 欧美午夜美女看片| 亚洲视频碰碰| 亚洲中字黄色| 激情五月婷婷综合| 亚洲黄色av| 国产精品一区二区黑丝| 久久久女女女女999久久| 午夜一区二区三区在线观看| 黄色av一区| 亚洲欧洲一区二区三区久久| 欧美午夜视频一区二区| 午夜精品一区二区三区在线播放| 亚洲综合色在线| 国产拍揄自揄精品视频麻豆| 久久精品在线观看| 欧美日韩国产页| 久久国产一区二区三区| 欧美va亚洲va日韩∨a综合色| 日韩视频免费观看| 久久爱www久久做| 9久re热视频在线精品| 欧美一区二区三区免费在线看| 亚洲二区精品| 亚洲欧洲av一区二区| 99视频一区二区三区| 久久九九国产精品怡红院| 一区二区高清视频在线观看| 久久人人97超碰人人澡爱香蕉| 一本色道**综合亚洲精品蜜桃冫| 亚洲在线观看视频网站| 日韩天堂在线观看| 蜜臀久久99精品久久久久久9 | 欧美国产精品日韩| 欧美不卡高清| 在线观看日韩| 欧美99在线视频观看| 女主播福利一区| 国产视频精品免费播放| 亚洲一区国产精品| 亚洲欧美在线高清| 国产毛片一区二区| 亚洲欧美日韩第一区| 亚洲午夜精品久久久久久浪潮 | 一区免费视频| 久久精品三级| 久久不射2019中文字幕| 国产一区二区三区四区在线观看| 亚洲在线免费| 免费精品视频| 一区二区三区蜜桃网| 欧美午夜国产| 欧美与黑人午夜性猛交久久久| 久久精品人人做人人爽电影蜜月| 伊人久久大香线| 蜜桃av一区二区三区| 亚洲精品一二三| 欧美一区成人| 最新国产拍偷乱拍精品| 国产精品亚洲综合一区在线观看 | 欧美午夜大胆人体| 久久精品二区三区| 亚洲精品少妇| 久久久在线视频| 一二三四社区欧美黄| 红桃视频一区| 国产精品永久免费视频| 欧美成人免费播放| 亚洲一区二区三区四区五区午夜| 免费在线亚洲| 久久精品国产77777蜜臀| 亚洲无限av看| 夜夜嗨av一区二区三区中文字幕| 国产欧美视频一区二区三区| 牛夜精品久久久久久久99黑人| 欧美一二三视频| 在线综合+亚洲+欧美中文字幕| 欧美成人精品三级在线观看| 久久久精品日韩| 久久视频国产精品免费视频在线| 亚洲综合成人在线| 亚洲一区区二区| 亚洲午夜精品17c| 亚洲一区二区三区四区五区黄| 亚洲激情二区| 亚洲美女一区| 亚洲一区二区三区免费在线观看| 亚洲图片自拍偷拍| 亚洲影院色无极综合| 午夜激情综合网| 久久riav二区三区| 久久久久高清| 亚洲国产精品123| 亚洲国产成人在线播放| 91久久精品国产| 亚洲欧美精品在线观看| 亚洲永久免费精品| 久久一区精品| 国产精品vip| 亚洲人成网站在线播| 夜夜精品视频| 久久久久久91香蕉国产| 亚洲精品欧美精品| 亚洲欧美日韩精品久久久| 久久女同互慰一区二区三区| 欧美日韩一区高清| 国产一本一道久久香蕉| 99这里有精品| 欧美成人在线免费视频| 一区二区三区久久| 久久久久网站| 欧美午夜视频网站| 亚洲人成在线观看| 欧美专区亚洲专区| 中国亚洲黄色| 欧美激情一区二区三区| 樱花yy私人影院亚洲| 欧美一区二区三区免费观看| 亚洲精品视频在线播放| 模特精品裸拍一区| 在线观看日韩一区| 麻豆精品传媒视频| 久久国产精品一区二区三区四区| 国产精品一区毛片| 亚洲欧洲av一区二区| 亚洲私人影院| 国产精品任我爽爆在线播放| 亚洲一区二区三区视频| 亚洲欧美国产一区二区三区| 国产精品美女视频网站| 久久精品日韩欧美|