大學計算機基礎(第2版)拓展閱讀全集_第1頁
大學計算機基礎(第2版)拓展閱讀全集_第2頁
大學計算機基礎(第2版)拓展閱讀全集_第3頁
大學計算機基礎(第2版)拓展閱讀全集_第4頁
大學計算機基礎(第2版)拓展閱讀全集_第5頁
已閱讀5頁,還剩71頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

漢字編碼問題

一、(JB2312-80介紹

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

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

使用此編碼。

GB2312收錄簡化漢字及符號、字母、日文假名等共7445個圖形字符,其中漢字占6763個

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

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

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

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

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

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

對應第二字節(jié),兩個字節(jié)的值分別為區(qū)號值和位號值加32(2OH),因此也稱為區(qū)位碼。014)9區(qū)

為符號、數(shù)字區(qū),16-87區(qū)為漢字區(qū)(0xb0-0xf7),10-15區(qū)、88-94區(qū)是有待進一步標準化

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

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

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

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

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

0X00此字節(jié)0X7EOXFE

ASCH區(qū)

(0X21,0X21)

高字節(jié)

0X7E

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

....:QXAI

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

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

圖1:GB2312編碼圖

圖中位于ASCII區(qū)中的虛線區(qū)域即為原GB2312編碼區(qū)域,右下角實線區(qū)域為平移后的

GB2312編碼區(qū)域。

二、GB2312-80的擴展

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

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

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

字形。GBK2K從根本上解決了字位不夠,字形不足的問題。它有幾個特點:

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

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

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

節(jié)0x30-0x39。

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

字形。

?它是國家標準,是強制性的。

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

的工作內(nèi)容。

三、Unicode

國際標準組織于1984年4月成立ISO/IECJTC1/SC2/WG2工作組,針對各國文字、符

號進行統(tǒng)一性編碼。1991年美國跨國公司成立UnicodeConsortium,并于1991年10月與

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

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

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

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

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

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

于是UNICODE應運而生。

UNICODE有雙重含義,首先UNICODE是對國際標準ISO/IEC10646編碼的一種稱謂

(ISO/IEC10646是一個國際標準,亦稱大字符集,它是ISO于1993年頒布的一項重要國際標

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

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

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

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

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

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

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

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

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

于BMP僅用兩個字節(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)一漢字擴充集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ū)域共計27487個漢字。Y1即彝文,位于OZONE保

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

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

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

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

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

機制,UNICODE擴充了1024*1024個字符,相應于OO-OF平面,并且將02平面分配

給了

CJKExtensionBoMicrosoft在Windows2000己實現(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)

如不去考慮特殊符號,及后來的七個擴充字,TW-B1G5的排序方式如下。將所有的字分

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

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

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

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

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

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

A340..7E,A1..BF各種符號區(qū)(包括標點符號、ASCII全角符號、注音符1984

號等)

A3El歐元符號CP950

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

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

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

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

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

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

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

F9D6..DC七個擴充字倚天

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

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

擴充字BIG5UnicodeBIG5_1984的同義

碼碼字

0xF9D6Ox88CF棋

銹0xF9D70x92B9銹

里0xF9D80x7CA7里

墻0xF9D9Ox58BB墻

恒0xF9DA0x6052,恒

妝0xF9DB0x7881妝

嫻0xF9DC0x5AFA嫻

Table2.七個擴充字

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

GB2312OxBO-0xF7OxAO-OxFE

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

GBK0x81-OxFE0x40-OxFE

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

節(jié)

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

節(jié)

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

五、如何判斷一個漢字是big5或是gb

大陸電腦中的漢字多以GB2312標準進行編碼,簡稱GB碼或國標碼,共定義6763漢字

,編碼如下:

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

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

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

0xB0A1,,

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

碼如下:

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

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

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

碼為OxBODA。

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

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

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

子集編碼范圍編碼空間編碼字數(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)碼的兩個字節(jié)都是從AOH-FEH之間的;

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

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

是BIGcode的。當然也有特殊情況,不過非常少見的。

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

返I可True表示包含BIG5碼

返回False表示不含BIG5碼,這段文字一般可認為是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

點陣漢字原理與應用

1點陣字庫結構

點陣字庫儲存

在漢字的點陣字庫中,每個字節(jié)的每個位都代表一個漢字的一個點,每個漢字都是由一個

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

0常用的點陣矩陣有12*12,14*14,16*16三種字庫。

16*16點陣字庫(見圖1所示)

對于16*16的矩陣來說,它所需要的位數(shù)共是16*16=256位,每個字節(jié)為8位,因此每

個漢字都要用256/8=32個字節(jié)來表示。即每兩個字節(jié)代表一行的16個點,共需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點陣字庫(部分)

1行

2行

3行

4

5行

6行

7行

-

8

9行

1行

第0

U行

1行

2

1行

3行

1行

4

1

5圖2漢字“中”16*16點陣示意

1

6

14*14與12*12點陣字庫

對于14*14和12*12的字庫,理論上計算,它們所需要的點陣分別為

(14*14/8)=25,(12*12/4)=18個字節(jié),但是,如果按照這種方式來儲存,那么取點陣和顯示

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

程序的效率。

為了解決這個問題,有些點陣字庫會將14*14和12*12的字庫按16*14和16*12來存儲,即

,每行還是按兩個字節(jié)來存儲,但是14*14的字庫,每兩字節(jié)的最后4位是沒有使用,這個根

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

2點陣漢字的獲取

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

漢字的點陣字庫是根據(jù)區(qū)位碼的順序進行儲存的,因此我們可以根據(jù)區(qū)位碼來獲得一個

字庫的點陣。計算公式如下:

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

對于16*16點陣字庫,公式即為:

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

獲取點陣起始位置后就可以從這個位置開始讀取出一個漢字的點陣。

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

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

3利用OlOEditor及畫圖工具詳細演示漢字“點”的點陣

過程

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

新建一個文本文檔,輸入“點”字,保存。然后用十六進制編輯器OlOEditor打開該文本

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

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

tfXStartup|皿16念|--tat.|

OOOOh:%E3

生txt

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

2、在16*16點陣字庫中獲取漢字“點”

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

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

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

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

評論

0/150

提交評論