亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于C#的字符編碼映射系統(tǒng)

        2010-02-23 07:27:26童天添
        關(guān)鍵詞:跨平臺(tái)國(guó)際化符號(hào)

        童天添

        (江蘇科技大學(xué)學(xué)報(bào)編輯部, 江蘇 鎮(zhèn)江 212003)

        0 引 言

        任何計(jì)算機(jī)軟件都需要在指定的字符編碼支持下才能運(yùn)行,在互聯(lián)網(wǎng)環(huán)境下,涉及跨國(guó)用戶的計(jì)算機(jī)軟件,更應(yīng)該注意它使用了怎樣的字符代碼體系.計(jì)算機(jī)用戶在使用計(jì)算機(jī)時(shí)常會(huì)遇到字符“亂碼”,特別是在涉外的計(jì)算機(jī)通訊中尤為常見[1-3].當(dāng)今中國(guó)有GB2312簡(jiǎn)體中文字符集,日本有Shift-JIS字符集,國(guó)際上類似這樣一個(gè)國(guó)家對(duì)應(yīng)一套或數(shù)套字符集的現(xiàn)象很多.Unicode是國(guó)際組織制定的可以容納世界上所有文字和符號(hào)的字符編碼方案,它用數(shù)字0~0x10FFFF來(lái)映射這些字符,最多可以容納1 114 112個(gè)字符,或者說(shuō)有1 114 112個(gè)碼位.碼位就是可以分配給字符的數(shù)字.UTF-8,UTF-16,UTF-32都是將數(shù)字轉(zhuǎn)換到程序數(shù)據(jù)的編碼方案.Unicode字符集簡(jiǎn)寫為UCS(Unicode Character Set).Unicode標(biāo)準(zhǔn)有UCS-2,UCS-4.UCS-2用兩個(gè)字節(jié)編碼,UCS-4用4個(gè)字節(jié)編碼.由于 Unicode 版本的發(fā)展原因,很多瀏覽器只能顯示 UCS-2 的完整字符集,即現(xiàn)在使用的 Unicode 版本中的一個(gè)子集.為此,本文以雙字節(jié)編碼空間為研究對(duì)象,用Visual Studio 2005 中的C#語(yǔ)言編寫了字符編碼映射系統(tǒng),分別展示出GB2312 和UCS-2字符集中的所有字符,結(jié)果證明了Unicode字符集在當(dāng)前系統(tǒng)資源充足的情況下,相比其他字符集具有跨語(yǔ)言、跨平臺(tái)進(jìn)行文本轉(zhuǎn)換、處理的優(yōu)越性.該系統(tǒng)為進(jìn)一步研究實(shí)現(xiàn)期刊采編系統(tǒng)等軟件的國(guó)際化奠定了基礎(chǔ).

        1 字符編碼映射系統(tǒng)的理論分析與設(shè)計(jì)

        1.1 UCS-2字符集的區(qū)域劃分

        UCS-2字符集用一個(gè)16位的值來(lái)表示每個(gè)字符,它已經(jīng)為歐洲拉丁文、擴(kuò)充拉丁文、阿拉伯文、泰文、日文、韓文等外文字母定義了Unicode代碼點(diǎn).該字符集中還包含了大量的標(biāo)點(diǎn)符號(hào)、數(shù)學(xué)符號(hào)、技術(shù)符號(hào)、箭頭、裝飾標(biāo)志、區(qū)分標(biāo)志和其他許多字符.現(xiàn)在USC-2字符集的65 536個(gè)代碼絕大部分已經(jīng)被分配了字符,其中中國(guó)漢字、日文漢字、韓文就占用了超過(guò)一半的代碼[4],這65 536個(gè)字符可以分成不同的區(qū)域.表1顯示了其中的部分區(qū)域的代碼范圍以及分配給這些區(qū)域的字符.

        表1 UCS-2字符集區(qū)域分布

        1.2 Unicode字符集轉(zhuǎn)換格式

        Unicode字符集轉(zhuǎn)換格式(UCS Transformation Format,UTF)用來(lái)規(guī)定怎樣將Unicode定義的數(shù)字轉(zhuǎn)換成程序數(shù)據(jù),包括:UTF-8,UTF-16,UTF-32.例如,“漢字”對(duì)應(yīng)的數(shù)字是0x6c49和0x5b57,而編碼的程序數(shù)據(jù)是:

        BYTE data_UTF8[] = {0xE6, 0xB1, 0x89, 0xE5, 0xAD, 0x97}; // UTF-8編碼

        WORD data_ UTF16[] = {0x6c49, 0x5b57}; // UTF-16編碼

        DWORD data_ UTF32[] = {0x00006c49, 0x00005b57}; // UTF-32編碼

        把Unicode編碼記作U.對(duì)于U<0x10000,UTF-8,UTF-16,UTF-32的編碼規(guī)則分別如下:

        (1)UTF-8以字節(jié)為單位對(duì)Unicode進(jìn)行編碼,從U到UTF-8的編碼方式如下:

        U║ UTF-8 字節(jié)流(二進(jìn)制)

        0x0000~0x007F ║ 0xxxxxxxB

        0x0080~0x07FF ║ 110xxxxxB10xxxxxxB

        0x0800~0xFFFF ║ 1110xxxxB10xxxxxxB10xxxxxxB

        (2)UTF-16編碼以16位無(wú)符號(hào)整數(shù)為單位.U的UTF-16編碼就是U對(duì)應(yīng)的16位無(wú)符號(hào)整數(shù).

        (3)UTF-32編碼以32位無(wú)符號(hào)整數(shù)為單位.U的UTF-32編碼就是其對(duì)應(yīng)的32位無(wú)符號(hào)整數(shù).

        1.3 字符集的映射

        圖1 字符生成流程圖

        圖1為字符編碼映射系統(tǒng)中的字符生成流程圖.從開始到結(jié)束,完成一套雙字節(jié)編碼空間字符集的生成過(guò)程,所使用的Unicode字符集轉(zhuǎn)換格式為UTF-16.圖2 為字符編碼映射系統(tǒng)顯示USC-2字符集的運(yùn)行截圖.程序用dataGridView控件的單元格存放生成的字符.dataGridView控件每行存放32個(gè)字符,列頭標(biāo)以0x00~0x1F連續(xù)編號(hào).以UCS-2字符集為例,UCS-2字符集共有65 536個(gè)碼位,所以dataGridView控件的總行數(shù)為65 535/16=4 096行,行頭標(biāo)以0x0000~0xFFE0非連續(xù)編號(hào).點(diǎn)擊“顯示USC-2字符集”按紐和“顯示GB2312字符集”按紐,分別在dataGridView控件中顯示相應(yīng)字符集的所有字符.

        顯示USC-2字符集的程序代碼如下:

        private void button1_Click(object sender, EventArgs e)

        {

        byte[] by16=new byte[2];

        for (int i = 0; i < 65536; i++)

        {

        by16[0] = Convert.ToByte(i% 256); //i取余給底字節(jié)

        by16[1] = Convert.ToByte(i/256); //i取整給高字節(jié)

        dataGridView1[i% 32, i/32].Value = ncoding.Unicode.GetString(by16);//UNICODE字符賦給單元格

        }

        }

        顯示GB2312字符集的程序代碼如下:

        private void button2_Click(object sender,EventArgs e)

        {

        byte[] by16 = new byte[2];

        for (int i = 0; i < 65536; i++)

        {

        by16[0] = Convert.ToByte(i% 256); //i取余給底字節(jié)

        by16[1] = Convert.ToByte(i/256); //i取整給高字節(jié)

        dataGridView1[i% 32, i/32].Value =

        Encoding.GetEncoding(“GB2312”).GetString(by16); //GB2312字符賦給單元格

        }

        }

        圖2 字符編碼映射系統(tǒng)運(yùn)行截圖

        2 結(jié)果的分析

        下面是通過(guò)本文設(shè)計(jì)的字符編碼映射系統(tǒng)生成的一部分Unicode字符,最前面的十六進(jìn)制數(shù)字是后面32個(gè)字符中第一個(gè)字符的編碼.

        通過(guò)了解Unicode的設(shè)計(jì)初衷和用設(shè)計(jì)的程序驗(yàn)證USC-2字符集中的字符,我們可以知道Unicode是一種在計(jì)算機(jī)上使用的字符編碼,它為每種語(yǔ)言中的每個(gè)字符設(shè)定了統(tǒng)一并且唯一的二進(jìn)制編碼,以滿足跨語(yǔ)言、跨平臺(tái)進(jìn)行文本轉(zhuǎn)換、處理的要求.Unicode標(biāo)準(zhǔn)有UCS-2和UCS-4.UCS-2用兩個(gè)字節(jié)編碼,UCS-4用4個(gè)字節(jié)編碼.Unicode還在不斷的發(fā)展,Unicode 4.1.0版本于2005年3月31日推出.另外,5.0 Beta版本于2005年12月12日推出,5.2版本于2009年10月1日正式推出.

        Unicode技術(shù)有其廣泛的應(yīng)用價(jià)值,它是今后軟件設(shè)計(jì)中字符編碼方式的一種趨勢(shì).本文所設(shè)計(jì)的映射系統(tǒng)是進(jìn)行軟件國(guó)際化研究工作的基礎(chǔ).以學(xué)報(bào)采編系統(tǒng)為例,我國(guó)科技期刊的編委和審稿幾乎均局限在國(guó)內(nèi),難以爭(zhēng)取境外稿源,也不可能在國(guó)際市場(chǎng)上暢銷[5].從采編系統(tǒng)的技術(shù)層面分析,編委、審稿人隊(duì)伍的國(guó)際化,稿源的國(guó)際化,銷售市場(chǎng)的國(guó)際化,必然要求能兼容世界各國(guó)語(yǔ)言的統(tǒng)一編碼標(biāo)準(zhǔn),這正是Unicode編碼標(biāo)準(zhǔn)所能滿足我們的.

        3 結(jié)束語(yǔ)

        (1)本文以雙字節(jié)編碼空間為研究對(duì)象,用其編碼空間映射出GB2312 和USC-2字符集中的所有字符,所用的方法具有通用性.對(duì)于其他的字符集,如日文Shift-JIS字符集,用該方法同樣可以獲得相應(yīng)字符集中的所有字符.

        (2)本文所設(shè)計(jì)的字符編碼映射系統(tǒng)是研究軟件系統(tǒng)跨語(yǔ)言、跨平臺(tái)運(yùn)用的基礎(chǔ).它作為一個(gè)工具,在今后的相關(guān)軟件的研發(fā)中必將經(jīng)常使用到.

        (3)Unicode具有跨語(yǔ)言、跨平臺(tái)進(jìn)行文本轉(zhuǎn)換、處理的特性.雖然在USC-4標(biāo)準(zhǔn)中每個(gè)字符有4個(gè)字節(jié)編碼,較其他編碼方案更加消耗存儲(chǔ)空間,但在當(dāng)前系統(tǒng)資源充足的情況下,它將是今后軟件中字符編碼的一種趨勢(shì).

        參考文獻(xiàn)

        [1]高 煒, 劉 偉,趙長(zhǎng)青.基于Windows的中文軟件移植到UNICODE的方法研究[J].軟件導(dǎo)刊,2008,(5):19-20.

        [2]張愛優(yōu).圖書館自動(dòng)化管理系統(tǒng)的新型編碼系統(tǒng)[J].圖書館雜志,2001,20(12):19-21.

        [3]馬玉芝, 李 俊.基于UNICODE的多民族文字處理在移動(dòng)終端上的實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2006,26(1):234-236.

        [4] 李建文,張成現(xiàn).實(shí)用網(wǎng)絡(luò)通信編程技術(shù)[M]. 北京:北京郵電大學(xué)出版社,2006.

        [5]余麗清.我國(guó)科技期刊國(guó)際化探討[J].中國(guó)科技期刊研究,2006,17(3):495-497.

        猜你喜歡
        跨平臺(tái)國(guó)際化符號(hào)
        聚焦港口國(guó)際化
        金橋(2022年10期)2022-10-11 03:29:46
        學(xué)符號(hào),比多少
        幼兒園(2021年6期)2021-07-28 07:42:14
        “+”“-”符號(hào)的由來(lái)
        人民幣國(guó)際化十年紀(jì)
        跨平臺(tái)APEX接口組件的設(shè)計(jì)與實(shí)現(xiàn)
        從園區(qū)化到國(guó)際化
        商周刊(2018年12期)2018-07-11 01:27:18
        變符號(hào)
        直銷企業(yè)國(guó)際化并不難
        圖的有效符號(hào)邊控制數(shù)
        基于QT的跨平臺(tái)輸電鐵塔監(jiān)控終端軟件設(shè)計(jì)與實(shí)現(xiàn)
        亚洲一区中文字幕一区| 亚州综合激情另类久久久| 国产自产c区| 日韩精品自拍一区二区| 国产麻花豆剧传媒精品mv在线| 男人靠女人免费视频网站| 午夜一级在线| 亚洲第一女人天堂av| 久草精品手机视频在线观看| 丰满老熟女性生活视频| 日日拍夜夜嗷嗷叫国产| 国产成人涩涩涩视频在线观看| 欧美成a人片在线观看久| 国产精品无需播放器| 熟女白浆精品一区二区| 国产女优一区在线观看| 国产精品99精品无码视亚 | 日韩一级精品视频免费在线看| 91精品国产综合久久熟女| 亚洲一区二区三区尿失禁| 中文字幕无线码| 国产肉体ⅹxxx137大胆| 久久人妻AV无码一区二区| 日韩美女人妻一区二区三区| 日本强伦姧人妻一区二区| 免费看av在线网站网址| 日本VA欧美VA精品发布| 国产成人精品无码一区二区老年人| 日韩精品一区二区三区影音视频 | 久久精品无码av| 色欲国产精品一区成人精品| 久久无码中文字幕东京热| 亚洲视频在线免费观看一区二区| 亚洲国产精品久久精品 | 99视频在线精品免费观看6| 久久av高潮av无码av喷吹| 五月激情婷婷丁香| 成人国产乱对白在线观看| 色偷偷亚洲精品一区二区| 特级做a爰片毛片免费看| 麻豆精品久久久久久久99蜜桃|