大學(xué)計(jì)算機(jī)基礎(chǔ)(第2版)拓展閱讀全集_第1頁(yè)
大學(xué)計(jì)算機(jī)基礎(chǔ)(第2版)拓展閱讀全集_第2頁(yè)
大學(xué)計(jì)算機(jī)基礎(chǔ)(第2版)拓展閱讀全集_第3頁(yè)
大學(xué)計(jì)算機(jī)基礎(chǔ)(第2版)拓展閱讀全集_第4頁(yè)
大學(xué)計(jì)算機(jī)基礎(chǔ)(第2版)拓展閱讀全集_第5頁(yè)
已閱讀5頁(yè),還剩71頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

漢字編碼問題

一、(JB2312-80介紹

GB23I2碼是中華人民共和國(guó)國(guó)家漢字信息交換用編碼,全稱《信息交換用漢字編碼字

符集??基本集》,由國(guó)家標(biāo)準(zhǔn)總局發(fā)布,1981年5月1日實(shí)施,通行于大陸。新加坡等地也

使用此編碼。

GB2312收錄簡(jiǎn)化漢字及符號(hào)、字母、日文假名等共7445個(gè)圖形字符,其中漢字占6763個(gè)

oGB2312規(guī)定“對(duì)任意一個(gè)圖形字符都采用兩個(gè)字節(jié)表示,每個(gè)字節(jié)均采用七位編碼表示

”,習(xí)慣上稱第一個(gè)字節(jié)為“高字節(jié)”,第二個(gè)字節(jié)為“低字節(jié)”。GB2312-80包含了大部分常

用的一、二級(jí)漢字,和9區(qū)的符號(hào)。該字符集是幾乎所有的中文系統(tǒng)和國(guó)際化的軟件都支持

的中文字符集,這也是最基本的中文字符集。其編碼范圍是高位Oxal-Oxfe,低位也是

Oxal-Oxfe;漢字從OxbOal開始,結(jié)束于0xf7fe

GB2312將代碼表分為94個(gè)區(qū),對(duì)應(yīng)第一字節(jié)(Oxal-Oxfe);每個(gè)區(qū)94個(gè)位(Oxal-Oxfe),

對(duì)應(yīng)第二字節(jié),兩個(gè)字節(jié)的值分別為區(qū)號(hào)值和位號(hào)值加32(2OH),因此也稱為區(qū)位碼。014)9區(qū)

為符號(hào)、數(shù)字區(qū),16-87區(qū)為漢字區(qū)(0xb0-0xf7),10-15區(qū)、88-94區(qū)是有待進(jìn)一步標(biāo)準(zhǔn)化

的空白區(qū)。GB2312將收錄的漢字分成兩級(jí):第一級(jí)是常用漢字計(jì)3755個(gè),置于16-55區(qū)

,按漢語(yǔ)拼音字母/筆形順序排列;第二級(jí)漢字是次常用漢字計(jì)3008個(gè),置于56-87區(qū),按

部首/筆畫順序排列。故而GB2312最多能表示6763個(gè)漢字。

GB2312的編碼范圍為2121H-777EH,與ASCD有重疊,通行方法是將GB碼兩個(gè)字節(jié)

的最高位置1以示區(qū)別。

0X00此字節(jié)0X7EOXFE

ASCH區(qū)

(0X21,0X21)

高字節(jié)

0X7E

01-09區(qū)符號(hào).黝字

....:QXAI

16-.55區(qū)一一僦0漢漢字字

OXFE.£.汝夕區(qū)三二照漢里字.

圖1:GB2312編碼圖

圖中位于ASCII區(qū)中的虛線區(qū)域即為原GB2312編碼區(qū)域,右下角實(shí)線區(qū)域?yàn)槠揭坪蟮?/p>

GB2312編碼區(qū)域。

二、GB2312-80的擴(kuò)展

GBK是GB2312-80的擴(kuò)展,是向上兼容的。它包含了20902個(gè)漢字,其編碼范圍

是0x8l4(Mxfefe,剔除高位Ox8Q的字位。其所有字符都可以一對(duì)一映射到Unicode2.0.

GB18030-2000(GBK2K)在GBK的基礎(chǔ)上進(jìn)一步擴(kuò)展了漢字,增加了藏、蒙等少數(shù)民族的

字形。GBK2K從根本上解決了字位不夠,字形不足的問題。它有幾個(gè)特點(diǎn):

?它并沒有確定所有的字形,只是規(guī)定了編碼范圍,留待以后擴(kuò)充。

?編碼是變長(zhǎng)的,其二字節(jié)部分與GBK兼容;四字節(jié)部分是擴(kuò)充的字形、字位,其編

碼范圍是首字節(jié)0x81-0xfe>二字節(jié)0x30-0x39、三字節(jié)0x81-Oxfe、四字

節(jié)0x30-0x39。

?它的推廣是分階段的,首先要求實(shí)現(xiàn)的是能夠完全映射到Unicode3.0標(biāo)準(zhǔn)的所有

字形。

?它是國(guó)家標(biāo)準(zhǔn),是強(qiáng)制性的。

?現(xiàn)在還沒有任何一個(gè)操作系統(tǒng)或軟件實(shí)現(xiàn)了GBK2K的支持,這是現(xiàn)階段和將來(lái)漢化

的工作內(nèi)容。

三、Unicode

國(guó)際標(biāo)準(zhǔn)組織于1984年4月成立ISO/IECJTC1/SC2/WG2工作組,針對(duì)各國(guó)文字、符

號(hào)進(jìn)行統(tǒng)一性編碼。1991年美國(guó)跨國(guó)公司成立UnicodeConsortium,并于1991年10月與

WG2達(dá)成協(xié)議,采用同一編碼字集。目前Unicode是采用16位編碼體系,其字符集內(nèi)容與

ISO10646的BMP(BasicMultilingualPlane)ffl同。Unicode于1992年6月通過(guò)

DIS(DraflnteniationiilStandard),目前版本V2.0于1996公布,內(nèi)容包含符號(hào)6811個(gè),漢字

20902個(gè),韓文拼音11172個(gè),造字區(qū)6400個(gè),保留20249個(gè),共計(jì)65534個(gè)。

隨著國(guó)際互聯(lián)網(wǎng)的迅速發(fā)展,要求進(jìn)行數(shù)據(jù)交換的需求越來(lái)越大,不同的編碼體系越來(lái)越

成為信息交換的障礙,而且多種語(yǔ)言共存的文檔不斷增多,單靠代碼頁(yè)已很難解決這些問題,

于是UNICODE應(yīng)運(yùn)而生。

UNICODE有雙重含義,首先UNICODE是對(duì)國(guó)際標(biāo)準(zhǔn)ISO/IEC10646編碼的一種稱謂

(ISO/IEC10646是一個(gè)國(guó)際標(biāo)準(zhǔn),亦稱大字符集,它是ISO于1993年頒布的一項(xiàng)重要國(guó)際標(biāo)

準(zhǔn),其宗旨是全球所有文種統(tǒng)一編碼),另外它又是由美國(guó)的HP、Micrasoft.IBM、Apple等

大企業(yè)組成的聯(lián)盟集團(tuán)的名稱,成立該集團(tuán)的宗旨就是要推進(jìn)多文種的統(tǒng)一編碼。

UNICODE同現(xiàn)在流行的代碼頁(yè)最顯著不同點(diǎn)在于:UNICODE是兩字節(jié)的全編碼,對(duì)

于ASCII字符它也使用兩字節(jié)表示。代碼頁(yè)是通過(guò)高字節(jié)的取值范圍來(lái)確定是ASCII字符,

還是漢字的高字節(jié)。如果發(fā)生數(shù)據(jù)損壞,某處內(nèi)容破壞,則會(huì)引起其后漢字的混亂。LJNICODE則一

律使用兩個(gè)字節(jié)表示一個(gè)字符,最明顯的好處是它簡(jiǎn)化了漢字的處理過(guò)程。

UNICODE使用平面來(lái)描述編碼空間,每個(gè)平面分為256行,256列,相對(duì)于兩字節(jié)編碼

的高低兩個(gè)字節(jié)。

UNICODE的第一個(gè)平面,稱為BasicMultilingualPlane(基本多文種平面),簡(jiǎn)稱BMP,由

于BMP僅用兩個(gè)字節(jié)表示,所以倍受青睞。

00

A-ZONE拼音文字編碼區(qū)

33

'V

CJKExtensionA

4D4DB5f

?

CJK

Hangul

JJ7-__________D7A1—JTM____

D8S-ZONEforUTF-16

哥——TODt

WOOCeOs

R-ZONE

圖三:UCS的基本多文種平面(BMP:BasicMultilingualPlane)

BMPChart

A-Zone拼音文字

SeeDetailedChart

CJKUnifiedIdeographsExtensionA(新)

中日韓統(tǒng)一漢字?jǐn)U充集A

CJKUnifiedIdeographs

中日韓統(tǒng)一漢字

9F

AOYiSyUables(A000-A48F)&YiRadicals(A490-A4BF)彝文音節(jié)字和字

A5根(新)

ABO-Zone

AC

HangulExtended韓文(新)

Dg

DFS-Zone(ForUseinUTF-16only)(新)

EO

F8

F9PrivateUseArea

FA

CJKCompatibilityIdeographs

FB

AlphabeticPresentation

FC

Forms

FDArabicPresentationForms-A

FE

FFComb.HalfCJKSmallArabicPresentation

M'ksCompat.F,FormFunii^-B

msVars.

HalfwidthAndFullwidthFormsSpecial

=notgraphiccharacters□=reservedforfuturestandardization

□=HangulExtended|=UTF-16

圖2:BMP的最新例圖

其中A_ZONE為拼音文字編碼區(qū),拉丁文、阿拉伯文、日文的平假名及片假名等都在

此區(qū)編碼。CJKExtensionA和CJK為漢字區(qū)域共計(jì)27487個(gè)漢字。Y1即彝文,位于OZONE保

留待將來(lái)使用。Hangul即韓文。EUDC為用戶私有區(qū),用戶可以根據(jù)需要自己定義此區(qū)的

編碼。R-ZONE為限制使用區(qū),一些兼容字符、特殊字符均放在此區(qū)。

UNICODE定義BMP中的D800-DFFF為代理區(qū)(SurrogaleZone),其中D8OO-D8FF

為高半代理(highsurrogaie),DC00-DFFF為低半代理(lowsurrogate)。從兩個(gè)區(qū)域分別

取一個(gè)編碼,組成一個(gè)4字節(jié)的代理對(duì)來(lái)表示一個(gè)編碼字符,此即為UTF-16。利用UTF-16

機(jī)制,UNICODE擴(kuò)充了1024*1024個(gè)字符,相應(yīng)于OO-OF平面,并且將02平面分配

給了

CJKExtensionBoMicrosoft在Windows2000己實(shí)現(xiàn)了UTF-16。

Unicode編碼布局

0000..007F;BasicLatin

0080..00FF;Latin-1Supplement

0100..017F;LatinExtended-A

0180..024F;LatinExtcndcd-B

0250..02AF;IPAExtensions

02B0..02FF;SpacingModifierLelters

0300..036F;CombiningDiacriticalMarks

0370..03FF;GreekandCoptic

0400..04FF;Cyrillic

0500..052F;CyrillicSupplcmcntary

0530..058F;Armenian

0590..05FF;Hebrew

0600..06FF;Arabic

0700..074F;Syriac

0780.,07BF;Thaana

0900..097F;Devanagari

0980..09FF;Bengali

0A00..0A7F;Gurmukhi

0A80..OAFF;Gujarati

0B00..OB7F;Oriya

0B80..0BFF;Tamil

0C00..0C7F;Tclugu

0C80..OCFF;Kannada

0D00..0D7F;Malayalam

0D80..0DFF;Sinhala

0E00.,0E7F;Thai

0E80..0EFF;Lao

0F00..OFFF;Tibetan

1000..109F;Myanmar

10A0..10FF;Georgian

1100..1lFF;HanguUamo

1200..137F;Ethiopic

13A0..13FF;Cherokee

1400..167F;UnifiedCanadianAboriginalSyllabics

1680..169F;Ogham

16A0..16FF;Runic

1700..171F;Tagalog

1720..173F;Hanunoo

1740..175F;Buhid

1760..177F;Tagbanwa

1780..17FF;Khmcr

1800..18AF;Mongolian

1E00..!EFF;LatinExtendedAdditional

1FOO..1FFF;GreekExtended

2000..206F;GcncralPunctuation

2070..209F;SuperscriptsandSubscripts

20A0..20CF;CurrencySymbols

20D0..20FF;CombiningDiacriticalMarksforSymbols

2100..214F;LetterlikeSymbols

2150..218F;NumberForms

2190..2IFF;Arrows

2200..22FF;MathematicalOperators

2300..23FF;MiscellaneousTechnical

2400..243F;ControlPictures

2440..245F;OpticalCharacterRecognition

2460..24FF;EnclosedAlphanumerics

2500..257F;BoxDrawing

2580..259F;BlockElements

25A0..25FF;GeometricShapes

2600..26FF;MiscellaneousSymbols

2700..27BF;Dingbats

27C0..27EF;MiscellaneousMalhematicalSymbols-A

27F0..27FF;SupplementalArrows-A

2800..28FF;BraillcPattems

2900..297F;SupplementalArrows-B

2980..29FF;MisccllancousMathcmaticalSymbols-B

2A00..2AFF;SupplementalMathematicalOperators

2E80..2EFF;CJKRadicalsSupplement

2F00..2FDF;KangxiRadicals

2FF0..2FFF;IdeographicDescriptionCharacters

3000..303F;CJKSymbolsandPunctualion

3040..309F;Hiragana

30A0..30FF;Katakana

3100..312F;Bopomofo

3130..318F;HangulCompatibilityJamo

3190..319F;Kanbun

31AO..31BF;BopomofoExtended

31FO..31FF;KatakanaPhoncticExtensions

3200..32FF;EnclosedCJKLetlersandMonths

3300..33FF;CJKCompatibility

3400..4DBF;CJKUnifiedIdeographsExtensionA

4E00..9FFF;CJKUnifiedIdeographs

AOOO..A48F;YiSyllables

A490..A4CF;YiRadicals

ACOO..D7AF;HangulSyllables

D8(X)..DB7F;HighSurrogates

DB80..DBFF;HighPrivateUseSurrogates

DCOO..DFFF;LowSurrogates

E000..F8FF;PrivateUseArea

F900..FAFF;CJKCompatibilityIdeographs

FBOO..FB4F;AlphabeticPresen(ationForms

FB50..FDFF;ArabicPresentationForms-A

FEOO..FEOF;VariationSelectors

FE20..FE2F;CombiningHalfMarks

FE30..FE4F;CJKCompatibilityForms

FE50..FE6F;SmallFomiVariants

FE70..FEFF;ArabicPresentationForms-B

FFOO..FFEF;HalfwidthandFullwidthForms

FFFO..FFFF;Specials

10300..1032F;OldItalic

10330..1034F;Gothic

10400..IO44F;Deseret

1D000..1DOFF;ByzantineMusicalSymbols

1D100..IDlFF,MusicalSymbols

1D400..1D7FF;MathematicalAlphanumericSymbols

20000..2A6DF;CJKUnifiedIdeographsExtensionB

2F800..2FA1F;CJKCompatibilityIdeographsSupplement

E0000..E007F;Tags

FOOOO..FFFFF;SupplementaryPrivateUseArea-A

100000..IOFFFF;SupplemcntaryPrivateUseArea-B

0000..007F;BasicLatin

0080..OOFF;Latin-1Supplement

0100..017F;LatinExtcndcd-A

0180..024F;LatinExtended-B

0250..02AF;IPAExtensions

02B0..02FF;SpacingModifierLetters

0300..036F;CombiningDiacriticalMarks

0370..03FF;GreekandCoptic

0400..04FF;Cyrillic

0500..052F;CyrillicSupplementary

0530..O58F;Armenian

0590..05FF;Hcbrcw

0600..06FF;Arabic

0700..074F;Syriac

0780..07BF;Thaaiia

0900.,097F;Devanagari

0980..09FF;Bengali

OAOO..0A7F;Gurmukhi

0A80..OAFF;Gujarati

OBOO..OB7F;Oriya

OB8O..OBFF;Tamil

OCOO..0C7F;Telugu

OC8O..OCFF;Kannada

ODOO..0D7F;Malayalam

OD8O..ODFF;SinhaIa

OEOO..OE7F;Thai

OE8O..OEFF;Lao

OFOO..OFFF;Tibetan

1OOO..109F;Myanmar

10A0..10FF;Gcorgian

1100..11FF;HangulJamo

1200..137F;Ethiopic

13A0..13FF;Cherokee

1400..167F;UnifiedCanadianAboriginalSyllabics

1680..169F;Ogham

16A0..16FF;Runic

1700..171F;Tagalog

1720..173F;Hcuiunou

1740..175F;Buhid

1760..177F;Tagbanwa

1780..17FF;Khmer

1800..18AF;Mongolian

1E00..!EFF;LatinExtendcdAdditional

1F00..lFFF;GreekExtended

2000.,206F;GeneralPunctuation

2070..209F;SuperscriptsandSubscrip(s

20A0..20CF;CurrcncySymbols

20D0..20FF;CombiningDiacriticalMarksforSymbols

2100..214F;LetterlikeSymbols

2150..218F;NumberForms

2190..2IFF;Arrows

2200..22FF;MathematicalOperators

2300..23FF;MiscellancousTcchnical

2400..243F;ControlPictures

2440..245F;OpticalCharacterRecognition

2460..24FF;EncloscdAlphanumcrics

2500..257F;BoxDrawing

2580.,259F;BlockEIements

25A0..25FF;GeometricShapes

2600..26FF;MiscellaneousSymbols

2700..27BF;Dingbats

27C0..27EF;MisccllancousMathcmaticalSymbols-A

27F0..27FF;SupplementalArrows-A

2800..28FF;BraillePattems

2900..297F;SupplcmcntalArrows-B

2980..29FF;MiscellaneousMathematicalSymbols-B

2A00..2AFF;SupplcmcntalMathematicalOperators

2E80..2EFF;CJKRadicalsSupplement

2F00..2FDF;KangxiRadicals

2FF0..2FFF;IdcographicDescriptionCharacters

3000..303F;CJKSymbolsandPunctuation

3040..309F;Hiragana

30A0..30FF;Katakana

3100..312F;Bopomofo

3130..318F:HangulCompatibilityJamo

3190..319F;Kanbun

31AO.,31BF;BopomofoExtended

31FO..31FF;KatakanaPhonelicExtensions

3200..32FF;EnclosedCJKLettersandMonths

3300..33FF;CJKCompatibility

3400..4DBF;CJKUnifiedIdeogr叩hsExlensionA

4E00..9FFF;CJKUnifiedIdcographs

A000..A48F;YiSyllables

A490..A4CF;YiRadicals

AC00..D7AF;HangulSyllables

D800..DB7F;HighSurrogatcs

DB80..DBFF;HighPrivateUseSurrogates

DC00..DFFF;LowSurrogates

EOOO..F8FF;PrivateUseArea

F900..FAFF;CJKCompatibilityIdeographs

FBOO..FB4F;AlphabcticPrcscntationForms

FB50..FDFF;ArabicPresentationForms-A

FEOO..FEOF;VariationSelectors

FE20..FE2F;CombiningHalfMarks

FE30..FE4F;CJKCompatibilityForms

FE50..FE6F;SmallFormVariants

FE70..FEFF;ArabicPresentationForms-B

FFOO..FFEF;HalfwidthandFullwidthForms

FFFO..FFFF;Specials

10300..1032F;OldItalic

10330..1034F;Gothic

10400..1044F;Dcscrct

1D000..1EX)FF;ByzantineMusicalSymbols

1D100..1D1FF;MusicalSymbols

1D400..1D7FF;MathematicalAlphanumericSymbols

20000..2A6DF;CJKUnificdIdcographsExtcnsionB

2F800..2FAIF;CJKCompalibilityIdeographsSupplement

EOOOO..E007F;Tags

FWOO..FFFFF;SupplementaryPrivateUseArea-A

1OOOOO..10FFFF;SupplementaryPrivateUseArea-B

四、大五碼(Big5)

如不去考慮特殊符號(hào),及后來(lái)的七個(gè)擴(kuò)充字,TW-B1G5的排序方式如下。將所有的字分

成兩大群:常用字區(qū)與次常用字區(qū),每一個(gè)字區(qū)分別用筆畫來(lái)排序,同一個(gè)筆畫的字,依部首

來(lái)排。TW-BIG5每個(gè)字由兩個(gè)字節(jié)組成,其第一字節(jié)編碼范圍為0xAl~0xF9,第二字節(jié)編

碼范圍為0x40-0x7E與OxAl-OxFE,總計(jì)收入13868個(gè)字(包括5401個(gè)常用字、7652個(gè)次

常用字、7個(gè)擴(kuò)充字、以及808個(gè)各式符號(hào)),其中可以大致劃分為以下幾個(gè)字區(qū):

第一字節(jié)第二字節(jié)字區(qū)制定

A1..A240..7E,A1..FE各種符號(hào)區(qū)1984

A340..7E,A1..BF各種符號(hào)區(qū)(包括標(biāo)點(diǎn)符號(hào)、ASCII全角符號(hào)、注音符1984

號(hào)等)

A3El歐元符號(hào)CP950

A4..C540.7F,Al.FF.常用字區(qū)1984

C640..7E常用字區(qū)1984

C6Al..FE罕用符號(hào)區(qū)倚天

C740..7E,A1..FE罕用符號(hào)區(qū)(包括日文、俄文等)倚天

C840.,7E,A1..D3罕用符號(hào)區(qū)(包括俄文、輸入法特殊符號(hào)等)倚天

C9..F840..7E,A1..FE次常用字區(qū)1984

F940.,7E,A1..D5次常用字區(qū)1984

F9D6..DC七個(gè)擴(kuò)充字倚天

F9DD..FE表格符號(hào)區(qū)倚天

Table1.BIG5字區(qū)與編碼范圍

擴(kuò)充字BIG5UnicodeBIG5_1984的同義

碼碼字

0xF9D6Ox88CF棋

銹0xF9D70x92B9銹

里0xF9D80x7CA7里

墻0xF9D9Ox58BB墻

恒0xF9DA0x6052,恒

妝0xF9DB0x7881妝

嫻0xF9DC0x5AFA嫻

Table2.七個(gè)擴(kuò)充字

編碼第f字^第二個(gè)字節(jié)第三個(gè)字節(jié)第四個(gè)字節(jié)

GB2312OxBO-0xF7OxAO-OxFE

編碼第一個(gè)字節(jié)第二個(gè)字節(jié)第三個(gè)字節(jié)第四個(gè)字節(jié)

GBK0x81-OxFE0x40-OxFE

GB18030的雙字0x81-OxFE0x40-0x7E,0x80-OxFE

節(jié)

GB18030的四字0x81-OxFE0x30-0x390x81-OxFE0x30-0x39

節(jié)

Table3.GB的漢字編碼規(guī)則

五、如何判斷一個(gè)漢字是big5或是gb

大陸電腦中的漢字多以GB2312標(biāo)準(zhǔn)進(jìn)行編碼,簡(jiǎn)稱GB碼或國(guó)標(biāo)碼,共定義6763漢字

,編碼如下:

第一字節(jié),行碼0xA1-0xFE,第二節(jié)字,列碼0xA1-0xFE,每行94個(gè)漢字。其中,1-

15行(A1-AF)全角字母、符號(hào);16-55行(BO-CF)以拼音為序的一級(jí)漢字3755字;56-87行

(D0-F7)以部首為序的二級(jí)漢字3008字。例如:GB碼16行1歹U表示“啊”字,編碼為

0xB0A1,,

港臺(tái)電腦中的漢字則多以BIG5編碼,共定義了13053漢字,漢字部分均以部首為序,編

碼如下:

第一節(jié)字,行碼0xA1-0xFE,第二節(jié)字,列碼0x40-0x7E,0xA1-0xFE,每行157個(gè)漢

字;其中,1-3/38-40行(A1-A3,C6-C8)全角字母、符號(hào),4-39行(A4C6)一級(jí)漢字5401字

,41-89行(C9-F9)二級(jí)漢字7652字。例如:BIG5碼16行121歹恫樣表示“啊”字,編

碼為OxBODA。

GBK乂稱GB擴(kuò)展編碼或GB13000,就是這樣的一個(gè)漢字編碼,它是是在兼容GB碼的

基礎(chǔ)上,將GB碼中不存在的ISO10646.1漢字,按Unicode編碼順序進(jìn)行重新編碼。其編

碼空間包含幾個(gè)子集,其中GBK/2就是GB碼漢字;各子集的編碼情況見下表。

子集編碼范圍編碼空間編碼字?jǐn)?shù)

GBK/10xA1A1-0XA9FE846717

GBK/20XB0A1-0XF7FE6,7686,763

GBK/30x8140-0xA0FE6,08C6,080

GBK/40xAA40-0xFEA08,1608,160

GBK/50xA840-0xA9A0192166

EUDC/1OxAAAl-0xAFFE564用戶定義1

EUDC/20xF8A1-0xFEFE658用戶定義2

EUDC/30xA140-0xA7A0672用戶定義3

一般是這樣辨別的:

1,GBcod?的內(nèi)碼的兩個(gè)字節(jié)都是從AOH-FEH之間的;

2、BIGcode的內(nèi)碼的第一個(gè)字節(jié)是80H-FFH,第二個(gè)字節(jié)是00H-FFH;

你要瀏覽全文,看看是否有第二個(gè)字節(jié)是小于7FH的漢字,如果有的話,一般

是BIGcode的。當(dāng)然也有特殊情況,不過(guò)非常少見的。

判斷一段文字中是否含有BIG5碼漢字,可用做內(nèi)碼的自動(dòng)識(shí)別

返I可True表示包含BIG5碼

返回False表示不含BIG5碼,這段文字一般可認(rèn)為是GB碼

FunctionCheckBIG(strSourceAsString)AsBoolean

DimidxAsLong

DimByteTemp()AsByte

CheckBIG=False

Foridx=1ToLen(strSource)

ByteTemp=StrConv(Mid(strSource,idx,1),vbFromllnicode)

KUBound(ByteTemp)>OThen

lfByteTemp(1)>=64AndByteTemp(1)<=126Then

CheckBIG=True

ExitFor

Endlf

Endlf

Next

EndFunction

參考:

httD://www.china-askD/msq6/cia41.shtml

httD:///stonec/hanzi/qbnqbk.htm

http:〃/s11/s11d3;200191010412.htm

http:〃/chinese/charmaD/tblqbmain.ahD?Daae-0

點(diǎn)陣漢字原理與應(yīng)用

1點(diǎn)陣字庫(kù)結(jié)構(gòu)

點(diǎn)陣字庫(kù)儲(chǔ)存

在漢字的點(diǎn)陣字庫(kù)中,每個(gè)字節(jié)的每個(gè)位都代表一個(gè)漢字的一個(gè)點(diǎn),每個(gè)漢字都是由一個(gè)

矩形的點(diǎn)陣組成,0代表沒有,I代表有,將0和1分別用不同顏色畫出就形成了一個(gè)漢字

0常用的點(diǎn)陣矩陣有12*12,14*14,16*16三種字庫(kù)。

16*16點(diǎn)陣字庫(kù)(見圖1所示)

對(duì)于16*16的矩陣來(lái)說(shuō),它所需要的位數(shù)共是16*16=256位,每個(gè)字節(jié)為8位,因此每

個(gè)漢字都要用256/8=32個(gè)字節(jié)來(lái)表示。即每?jī)蓚€(gè)字節(jié)代表一行的16個(gè)點(diǎn),共需16行(見圖2

麻)。

StartupMZK16"

OOOOhi0000000000OOOO00OOOOOOooooOO0000

0010b:00000000000000000000000000000000

0020h:00000000000000000000000000000000

0030h:000000003000IE00oroo070000000000

0040b:00000000000000000000000000000000

0050h:000000003c006600660066003C000000

ooeoh:00000000000000000000000001BO03CO

0070h:03CO0180000000000000000000000000

ooeoh:000000000000000000000000000007FO

0090b:00000000000000000000000000000000

OOAOh:000000000000000010041004080808oe

OOBOh:0410041002200220014001CO00BO0000

OOCOh:000000000000000000000C18IE3CIE3c

OODOh:0C180000000000000000000000000000

OOEOh:000000000000011001100330033006CO

ooroh:044004400BSO08801100110000000000

0100b:00000100038003000608orFCoc181030

oilOh:003002eooiCOOOCOOOEO00000000OO

0120h:00000000000000000000000000007FFE

0130b:000000000000000000000000000000GO

0140B:0000000000000000000000000E003F80

OlSOh:61C300FE003800000000000000000000

0160H:00000240024002400240024002400240

0170h:02400240024002400240024002400000

0180h:000000000000000000000000318C7BDE

0190h:7BDC31ecoo0000000000000000000000

OlAOh:0000000000oeoo30006000F000FO00CO

OlBOh:00000000000000000000000000000000

OlCOh:0000oc00IE00XE00OC00040008001000

OlDOh:00000000000000000000000000000000

OlEOh:00000000002100C6018C03DE03DE018C

OlFOh:00000000000000000000000000000000

0200h:000016CO3DE03DE018CO084010802100

0210h:00000000000000000000000000000000

0220h:0000QQOC0038QQ6000Q。ooiooo

0230h:00400040004000400060003900

0240h:000018000E0003000100010001000100

02&0h:010001000100010003000E00IS000000

圖116*16點(diǎn)陣字庫(kù)(部分)

1行

2行

3行

4

5行

6行

7行

-

8

9行

1行

第0

U行

1行

2

1行

3行

1行

4

1

5圖2漢字“中”16*16點(diǎn)陣示意

1

6

14*14與12*12點(diǎn)陣字庫(kù)

對(duì)于14*14和12*12的字庫(kù),理論上計(jì)算,它們所需要的點(diǎn)陣分別為

(14*14/8)=25,(12*12/4)=18個(gè)字節(jié),但是,如果按照這種方式來(lái)儲(chǔ)存,那么取點(diǎn)陣和顯示

時(shí),由于每一行都不是8的整數(shù)倍就會(huì)涉及到點(diǎn)陣的計(jì)算處理問題,會(huì)增加程序的復(fù)雜度,降低

程序的效率。

為了解決這個(gè)問題,有些點(diǎn)陣字庫(kù)會(huì)將14*14和12*12的字庫(kù)按16*14和16*12來(lái)存儲(chǔ),即

,每行還是按兩個(gè)字節(jié)來(lái)存儲(chǔ),但是14*14的字庫(kù),每?jī)勺止?jié)的最后4位是沒有使用,這個(gè)根

據(jù)不同的字庫(kù)會(huì)有不同的處理方式,所以在使用字庫(kù)時(shí)要注意這個(gè)問題,特別是14*14的字庫(kù)

2點(diǎn)陣漢字的獲取

利用區(qū)位碼獲取漢字

漢字的點(diǎn)陣字庫(kù)是根據(jù)區(qū)位碼的順序進(jìn)行儲(chǔ)存的,因此我們可以根據(jù)區(qū)位碼來(lái)獲得一個(gè)

字庫(kù)的點(diǎn)陣。計(jì)算公式如下:

點(diǎn)陣起始位置二((區(qū)碼?1)*94+(位碼-1))*漢字點(diǎn)陣字節(jié)數(shù)

對(duì)于16*16點(diǎn)陣字庫(kù),公式即為:

點(diǎn)陣起始位置二((區(qū)碼-1)*94+(位碼-D)*32

獲取點(diǎn)陣起始位置后就可以從這個(gè)位置開始讀取出一個(gè)漢字的點(diǎn)陣。

利用GBK內(nèi)碼獲取漢字

由于區(qū)位碼和漢字的內(nèi)碼可以相互轉(zhuǎn)換,自然也可以用GBK內(nèi)碼來(lái)獲取漢字。

3利用OlOEditor及畫圖工具詳細(xì)演示漢字“點(diǎn)”的點(diǎn)陣

過(guò)程

1、獲取“點(diǎn)”字的GBK內(nèi)碼

新建一個(gè)文本文檔,輸入“點(diǎn)”字,保存。然后用十六進(jìn)制編輯器OlOEditor打開該文本

文檔(見圖3所示),得到漢字“點(diǎn)”的GBK內(nèi)碼為B5E3o

-1'—rM-,-r彳.R八y

tfXStartup|皿16念|--tat.|

OOOOh:%E3

生txt

圖3漢字“點(diǎn)”GBK內(nèi)碼

2、在16*16點(diǎn)陣字庫(kù)中獲取漢字“點(diǎn)”

“點(diǎn)”字的區(qū)碼=B5-AO=15H=21:;”點(diǎn)"字的位碼=E3-A0=43H=67.從而“點(diǎn)”字在字

庫(kù)中的起始位置二((21-1)*94+(67-1))*32=62272二F340H。用OlOEditor查看16*16點(diǎn)

陣字庫(kù),按住鍵盤ctrl+g輸入F340.定位到此處。選中當(dāng)前一行及下一行,選菜單edit-copy

as-copyashextext,粘貼到文本文件中,得到“點(diǎn)”的點(diǎn)陣數(shù)據(jù)(見圖4所示)。

x>(duMcxxfUTthaiewzKieI11MinJ

“r?l?t

'r、VM?八utn

Oe^ad9Frm

rHflSUWMa,F2S0IW2x3ro4?O8

MMTiUF11MD'OtwO<<Nc-Bz

2FJ21O“

mrKFAIMExfA

1O1?c<lg

c、UM?八3八tn6

i5F91st38.<.?*?*.se?sm

6rt

)UM1FIIAA131tr.02oxMO9B.S.BAXH-1

c4-O5!

rxg1TrAl4A"-D

o11t?“

nw>i1x4n!>-D??DB>>.SPK.

1?&>八<

,3?4L42e

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論