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

Kisser Leon

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

unicode學習小結(jié)

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

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

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

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

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

?

以下是對我這一階段學習的小結(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)立單一字符集,一個是國際標準化組織( ISO )的 ISO 10646 ,另一個是由很多大企業(yè)( Apple Compaq HP IBM Microsoft Oracle 等)組成的協(xié)會組織的 unicode 1991 年前后,他們合并了雙方的工作,統(tǒng)一了編碼表。雖然這兩個組織都還獨立的存在,但是他們的標準是兼容的。

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

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

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

考慮到 Unicode 標準有一個易記的名字 , 且在任何好的書店里的 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)致非常嚴重的問題 . 用這些編碼的字符串會包含一些特殊的字符 , 比如 '\0' '/', 它們在 文件名和其他 C 庫函數(shù)參數(shù)里都有特別的含義 . 另外 , 大多數(shù)使用 ASCII 文件的 UNIX 下的工具 , 如果不進行重大修改是無法讀取 16 位的字符的 . 基于這些原因 , 在文件名 , 文本文件 , 環(huán)境變量等地方 , UCS-2 不適合作為 Unicode 的外部編碼 .

ISO 10646-1 Annex R RFC 2279 里定義的 UTF-8 編碼沒有這些問題 . 它是在 Unix 風格的操作系統(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 )來標記字節(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( 去除模板標志﹐再四字節(jié)四字節(jié)讀即 0x6c49) ,查 unicode 編碼表就是 " " , 而最后一個以 0 開頭就一定是一個字節(jié)了, 0x0041 ,也就是 "A"

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

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

GB2312 是大陸的字符編碼標準,屬于國家標準。它是與 ASCII 碼兼容的。后來又有 GBK1.0 GB18030 等字符編碼標準,這些都是向下兼容的,但橫向不兼容!比如 GB2312 Big5 在很多編碼上是重疊的,是不兼容的; Unicode GB 標準碼也是不兼容的。中文操作系統(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 ,是中國大陸使用的國家標準,其中一共編碼了 6763 個常用簡體漢字。 Big5 ,是臺灣使用的編碼標準,編碼了中國臺灣使用的繁體漢字,大概有 8 千多個。 HKSCS ,是中國香港使用的編碼標準,字體也是繁體,但跟 Big5 有所不同。

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

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

?

上面這些東西,很多是我從網(wǎng)上摘抄下來的,也有少部分是我自己的理解。如果有什么不對的地方,敬請指教。如果有什么講的不清楚的、或者需要講一下的,請?zhí)岢鰜怼H绻惺裁聪M軌蛞黄鹩懻撚懻摰模瑲g迎給我發(fā)郵件或回帖討論!

Feedback

# re: unicode學習小結(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>
            一本一本a久久| 欧美亚洲一区三区| 裸体一区二区| 麻豆精品视频| 亚洲欧洲一区二区三区在线观看 | 欧美三日本三级三级在线播放| 亚洲激情在线观看| 亚洲欧洲一区二区三区| 欧美激情在线有限公司| 亚洲午夜精品福利| 羞羞漫画18久久大片| 99re热这里只有精品免费视频| 欧美视频在线视频| 久久精品99国产精品| 久久亚洲综合色一区二区三区| 日韩性生活视频| 亚洲自拍偷拍福利| 亚洲国产精品久久久久秋霞蜜臀 | 亚洲欧美日韩精品一区二区| 性欧美长视频| 日韩视频免费看| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产午夜精品久久久久久久| 亚洲福利免费| 国产精品一二一区| 欧美高清在线一区| 国产精品电影观看| 欧美国产日韩一区二区| 国产精品久久毛片a| 美女国产一区| 国产精品实拍| 亚洲欧洲一区二区在线播放| 国产日韩欧美电影在线观看| 欧美激情一区二区三区| 国产精品综合av一区二区国产馆| 欧美福利精品| 国产亚洲欧美一区| 亚洲美女精品久久| 亚洲第一页中文字幕| 午夜精品在线| 亚洲在线国产日韩欧美| 欧美第十八页| 久久青草欧美一区二区三区| 欧美性色视频在线| 亚洲经典在线| 亚洲国产二区| 久久99在线观看| 午夜精品福利视频| 欧美日韩激情小视频| 亚洲成色最大综合在线| 红桃视频欧美| 欧美一区二区精品在线| 性欧美办公室18xxxxhd| 欧美日韩一区视频| 亚洲三级国产| 日韩视频二区| 欧美激情第二页| 亚洲国产精品黑人久久久| 亚洲永久免费观看| 美女日韩欧美| 欧美.日韩.国产.一区.二区| 国产主播喷水一区二区| 亚洲综合二区| 欧美一二区视频| 国产精品免费网站| 亚洲先锋成人| 中文一区字幕| 一本色道久久综合亚洲精品高清| 看欧美日韩国产| 欧美xx视频| 最新国产成人av网站网址麻豆 | 午夜精品视频| 欧美一级片一区| 国产一区二区三区黄| 久久精品夜色噜噜亚洲a∨| 久久五月激情| 亚洲国产精品久久久久| 欧美国产日韩免费| 亚洲美女在线国产| 亚洲综合精品四区| 国产日产欧产精品推荐色| 香蕉久久夜色精品| 美女精品在线| 亚洲人午夜精品免费| 欧美日韩国产高清视频| 一区二区动漫| 久久av一区二区三区亚洲| 极品日韩av| 欧美精品久久99久久在免费线| 亚洲三级色网| 久久精品免费看| 亚洲国产精品激情在线观看| 欧美日本国产一区| 亚洲一区二区在线播放| 蜜桃久久精品一区二区| 亚洲最新色图| 国产一区二区中文字幕免费看| 久久午夜电影| 在线亚洲欧美| 欧美~级网站不卡| 亚洲综合精品自拍| 在线观看福利一区| 欧美视频久久| 巨乳诱惑日韩免费av| 99re6热只有精品免费观看| 久久国产精品久久久久久电车| 在线精品在线| 国产精品蜜臀在线观看| 麻豆91精品91久久久的内涵| 国产精品99久久久久久人| 麻豆精品一区二区av白丝在线| 在线视频精品一区| 精品不卡一区| 国产精品丝袜久久久久久app| 玖玖视频精品| 久久成人一区| 亚洲欧美国产另类| 日韩小视频在线观看| 蘑菇福利视频一区播放| 午夜久久美女| 99re66热这里只有精品4 | 另类综合日韩欧美亚洲| 亚洲欧美另类在线| 亚洲欧洲久久| 欧美91视频| 久久久91精品| 性亚洲最疯狂xxxx高清| 一区二区三区视频在线播放| 亚洲电影免费在线| 国内精品免费午夜毛片| 国产伦精品一区| 国产精品久久久久国产a级| 欧美国产综合一区二区| 久久综合狠狠综合久久综合88| 午夜天堂精品久久久久| 亚洲伊人久久综合| 亚洲一区国产视频| 国产尤物精品| 欧美一级二级三级蜜桃| **网站欧美大片在线观看| 欧美日韩精品一区二区三区四区| 久久久av水蜜桃| 香蕉成人伊视频在线观看| 亚洲一区二区三区乱码aⅴ蜜桃女 亚洲一区二区三区乱码aⅴ | 亚洲高清电影| 国产亚洲精品一区二区| 国产农村妇女毛片精品久久莱园子| 国产精品不卡在线| 亚洲国产老妈| 狠狠色丁香久久婷婷综合丁香 | 亚洲一区二区三区视频播放| 99re6热只有精品免费观看| 亚洲精品综合久久中文字幕| 亚洲片在线观看| 欧美激情欧美激情在线五月| 亚洲大片免费看| 亚洲精品久久7777| 一区二区免费在线视频| 一区二区三区**美女毛片| 一区二区三区成人精品| 亚洲自拍16p| 欧美中文字幕第一页| 久久亚洲不卡| 欧美激情成人在线| 国产精品户外野外| 黄色成人免费观看| 日韩午夜激情电影| 午夜久久久久久| 免费观看亚洲视频大全| 亚洲精品国产日韩| 亚洲一区免费| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美激情精品| 国产精品日产欧美久久久久| 在线看一区二区| 一级日韩一区在线观看| 欧美在线播放视频| 欧美成人伊人久久综合网| 欧美视频在线免费| 在线成人激情| 亚洲影院免费| 欧美大片一区二区三区| 亚洲专区一区| 欧美精品v日韩精品v国产精品| 国产麻豆精品theporn| 亚洲精品中文字幕女同| 欧美中文字幕不卡| 亚洲国产精品99久久久久久久久| 亚洲一二三四区| 欧美激情1区2区| 禁断一区二区三区在线| 午夜精品一区二区三区电影天堂| 欧美r片在线| 亚洲欧美中文另类| 欧美经典一区二区| 红桃视频国产精品| 欧美一区二区三区免费观看| 亚洲国产裸拍裸体视频在线观看乱了中文 | 亚洲一区二区视频| 欧美国产综合视频|