版權說明:本文檔由用戶提供并上傳,收益歸屬內(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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版交通設施地形圖保密及規(guī)劃合同3篇
- 二零二五版建筑工程施工圖紙審查招標投標合同書3篇
- 二零二五年度花展工程花卉品種研發(fā)與專利申請合同3篇
- 二零二五年度綠色建筑項目采購合同3篇
- 二零二五版XX個人商業(yè)秘密保護合同樣本3篇
- 二零二五年度私人墓地購置與墓園墓碑雕刻人才培養(yǎng)合同3篇
- 二零二五年度金融機構貸款擔保與信用管理合同3篇
- 二零二五版家庭水電維修與改造兼職合同3篇
- 二零二五版廢舊電線電纜回收與資源化利用合同3篇
- 二零二五年度食品行業(yè)環(huán)境保護設施租賃合同2篇
- 小學一年級英語1a期末學業(yè)評價方案
- 中央廣播電視大學畢業(yè)生登記表-6
- 搶救制度試卷附有答案
- 勞務派遣勞務外包服務方案(技術方案)
- 2023年藥品注冊專員年度總結及來年計劃
- 易普拉格科研管理系統(tǒng)
- 最終版 古城文化修復監(jiān)理大綱
- 拔罐技術操作考核評分標準
- 軟件無線電原理與應用第3版 課件 第4-6章 軟件無線電硬件平臺設計、軟件無線電信號處理算法、信道編譯碼技術
- RB-T 099-2022 進口食品供應商評價技術規(guī)范
- 戒賭法律協(xié)議書范本
評論
0/150
提交評論