C-programmet för kinesiska internkod och GB-koden



/ / HZEncode.cpp: Definierar ingångspunkt för konsolen ansökan.

/ /

/ *

Referenser:

Kinesiska teckenkodning och representation

1) Tecknet utbyte kod (GB-koden) Kinesiska utbyte kod (GB-kod) används främst för karaktären informationsutbyte.

GB Kod: National Bureau of Standards utfärdade 1980, "utbyte av information med kodad kinesiska tecknet som" grundläggande uppsättning "(med kodnamnet GB2312 80) föreskrivs utbyte kod som nationell standard kinesisk teckenkodning.GB2312 80 symboler totalt 7.445 tecken: ett kinesiskt tecken symbol 6.763 3.755 (i alfabetisk ordning efter pinyin) två tecken 3.008 (alfabetisk ordning efter radikaler) icke-karaktär symboler 682 GB2312 80 föreskrivs att allaGB kod kinesiska tecken och symboler för att bilda en 94 94 kvadrat.I denna matris är varje rad kallas för en "zon", varje kolumn kallas en "bit".Denna matris faktiskt består av en 94 zon (nummer 01-94) har varje distrikt 94 bitar (nummer 01 till 94) av den kinesiska teckenuppsättningen.En karaktär position där riktnummer och kombinationer nummer för att bilda de kinesiska tecknen för "riktnummer."Bland dem, två av koden för höga och låga för de lite nummer två.Detta område unik kod som kan identifiera en viss karaktär eller tecken, tvärtom, motsvarar varje tecken eller symbol som en unik riktnummer, det finns inget nytt kod.

Riktnummer fördelas enligt följande:

Innehållet i en zon kod av olika symboler på tangentbordet är inte alla Zon 2 Zon 3 serienummer symboler på tangentbordet (som ges av den kinesiska vägen) 4-5 District 6 District, det japanska alfabetet ryska alfabetet grekiska alfabetet 7 Distrikt 8 Distriktidentifiera fonetiska alfabetet vokaler och toner namnet på fliken symboler Area 10 till 15 september med en 16-55 distriktsnivå område är inte tecknet (på pinyin alfabetisk ordning) från 56 till 87 området två tecken (i alfabetisk ordning radikaler) 88- 94 area specialtecken

Av ovanstående kan vi se att alla kinesiska tecken och symboler av de 94 områden kan delas in i fyra grupper:

① 1 -15 zon: en grafisk symbol område.Av vilka 19 områden som standard symbol området, 10 15 Område för den anpassade symbolen.

② 16 -55 zon: som en karaktär området, inklusive 3.755 kinesiska tecken.Karaktären av dessa områden i alfabetisk ordning, är homonymer anges i ordning efter stroke.

③ 56 -87 zon: zon för de två kinesiska tecken, innehåller 3.008 kinesiska tecken.Karaktären av dessa områden är det sorteringsordningen genom radikala stroke.

④ 88 -94 zon: för specialtecken området.

GB kodexen föreskrivs att varje tecken (inklusive några icke-tecken-symbol) uttryckt en 2 byte-kod.Den högsta bit av varje byte är 0, använd endast den lägre 7 bitar, medan den undre 7-bitars kodning av 34 har används för kontroll, så att varje byte är bara 27 till 34 = 94 koder för kinesiska tecken.2 byte har 9.494 = 8.836 teckenkodning.Sade ett kinesiskt tecken i 2 byte, höga byten kod som motsvarar radnumret i tabellen, kallad riktnummer, låg byte-kod som motsvarar kolumnen nummer i tabellen, som kallas bitars nummer.

Omfattningen av kinesiska nationell standard kod i binär är: 0.010.000.100.100.001 0.111.111.001.111.110 (1 +32) 10 (1 +32) 10 (94 +32) 10 (94 +32) 10 7-bitars ASCII koden består av 128 tecken.Som kodar värdet av 031 (0,000,000,000,011,111) inte motsvarar någon utskrift tecken, ofta kallad styrtecken används i datakommunikation eller datorutrustning, kommunikation kontrollfunktion för kontroll.Kod värde 32 (00100000) är mellanslag SP.Kod värde 127 (1111111) är att ta bort tecken DEL.

Tecken kod som börjar GB 00100001 är den binära ställning val (33) 10 är ASCII-koden för att hoppa över 32 styrtecken och mellanslag.Därför, den kinesiska nationella standard kod med hög och låg, jämfört med motsvarande riktnummer Large (32) 10 eller (00.100.000) 2 eller (20) H, nämligen en nationell standard koden hög = riktnummer + 20H (H hexadecimalt) GBkod-bitars kod + 20H = Låg

2) Kinesiska maskin kod (koden) (kinesiska upplagsplatser)

Kinesiska maskinkod (koden) (kinesiska tecken lagras kod) är att göra de olika kinesiska tecken representation input kod inuti datorn.För att skriva in koden i en mängd olika karaktärer inom den enhetliga datorn finns det en butik tillägnad tecken inuti datorn maskinkod med hjälp av de tecken som skall matas in med hjälp av olika kinesiska tecknet input enhetlig kod i maskinkod för kinesiska teckenlagring, för att underlätta det kinesiska tecknet bearbetning inuti maskinen kod i datorn lagring, bearbetning kod.Dator är det nödvändigt att ta itu med kinesiska tecken, måste ta itu med den engelska.Därför måste datorn kunna skilja mellan kinesiska tecken och engelska tecken.Engelska tecken i maskinkod är den högsta på 8-bitars ASCII-kod 0.För att inte 7-bitars ASCII-kod med konflikten, en nationell standard kod för varje byte av högsta lite från 0 till 1 och de återstående bitarna förblir oförändrade eftersom den kinesiska teckenkodning maskinkod.

Kinesiska maskinkod av sortimentet i binär är: 1.010.000.110.100.001 1.111.111.011.111.110 maskinkod av toppar och dalar än motsvarande nationell standard kod av hög och låg stora (128) 10 eller (10 miljoner) 2 eller (80) H, nämligen: maskinenkod hög = SE-nummer hög + 80h maskinkod låg = SE-nummer låg + 80h och även på grund: GB kod hög = riktnummer + 20H GB kod låg = lite kod + 20H så: maskinkod hög = riktnummer + A0H maskinkod låga bit kod + A0H = dvs maskinkod maskinkod högt och lågt, jämfört med motsvarande riktnummer och plats kod stora (160) 10 eller (10.100.000) 2 eller (A0) H Exempel: det kinesiska tecknet "ah"Området koden är" 1601 ", där riktnumret (16) 10 eller (10) H,-bitars kod (01) 10 eller (01) H.Sedan: maskinkod hög = 10H + A0H = B0H maskinkod låg = 01H + A0H = A1H så: maskinkod = B0A1H

Följande är noterat fragment:

!--[ Om SupportEmptyParas] - !--[ endif] -

3) De teckeninmatning kod (yttre kod)

Kinesiska teckeninmatning kod (yttre kod) är ett tecken till teckeninmatningen genom ett tangentbord designat en dator kod.Engelska ingång, vilken karaktär skulle fasen synpunkter på vad nyckel, anger samma kod och maskinkod.Kinesiska tecken ingång kan matas in enligt några viktiga tecken.Det finns hundratals kinesiska teckeninmatning programmet, men variera extern kod matas in i datorn inuti kommer att omvandlas till en enhetlig kod.Kinesiska teckeninmatning program kan delas in i följande fyra typer:

(1) ton kod: Om stavningen, Larry, Microsoft Pinyin

(2) Shape-kod: Om fem slag, Zheng-kod, Shape-kod, etc.

(3) koder kan låta: som smarta ABC, naturliga koder

(4) numerisk kod: Om riktnummer, telegraf koder

4) Tecknet glyph-koden (output-kod)

Kinesiska teckenkod (utkoder) för visning och utskrift av kinesiska tecken, är den digitala informationen av kinesiska tecken.Kinesiska tecken i koden är en numerisk kod för att representera tecken, men utgången för att tillåta människor att se kinesiska tecken, kinesiska typsnitt som ska ut.I det kinesiska systemet, den allmänna matris att representera formen.16 * 16 tecken matrisskrivare visar 16 backup bin conf config uppgifter eshow_sitemap.html generate.sh logga maint sitemap.html svn tmp 16 lattice form av ordet att använda 32 byte (16 backup bin conf config data eshow_sitemap.html genererar.sh log maint sitemap.html svn tmp 16 / 8 = 32) minne, 24 backup bin conf config uppgifter eshow_sitemap.html generate.sh logga maint sitemap.html svn tmp 24 lattice form av ordet att använda 72 byte (24 backupbin conf config uppgifter eshow_sitemap.html generate.sh logga maint sitemap.html svn tmp 24 / 8 = 72) lagring.

I allmänhet är resultatet av kinesiska tecken med hjälp av gitter större, desto bättre kvalitet på kinesiska tecken, naturligtvis, varje tecken matris desto större mängden lagringsutrymme som krävs.

5) Karaktären adress kod

Karaktär adress kod är det kinesiska tecknet bibliotek (i huvudsak avser hela formen på matrisskrivare typsnittsbibliotek) lagras i logisk adressinformation av kinesiska tecken.I det kinesiska tecknet biblioteket, är formen information en viss ordning (de flesta av de kinesiska utbyte koder i enlighet med standarden ordning kinesiska tecken) kontinuerligt lagras i media, så karaktärerna är huvudsakligen behandlar kod en kontinuerlig och ordnad, och med tecken iKoden har en enkel relation mellan, förenkla kinesiska tecken i koden för att hantera kod konvertering.

Följande är noterat fragment:

* /

!--[ Om SupportEmptyParas] - !--[ endif] -

# Include "Stdafx.h"

# Include "HZEncode.h"

!--[ Om SupportEmptyParas] - !--[ endif] -

# Ifdef _DEBUG

# Definiera nya DEBUG_NEW

# Undef THIS_FILE

statisk char THIS_FILE [] = __FILE__;

# Endif

# Definiera UNICODE

# Definiera _UNICODE

/////////////////////////////////////////////////////////////////////////////

/ / Den enda ansökan objekt

!--[ Om SupportEmptyParas] - !--[ endif] -

CWinApp theApp;

!--[ Om SupportEmptyParas] - !--[ endif] -

using namespace std;

osignerade kort * ptr;

char * pszHZ = "ah";

byte BT [] = {0xc4, 0xe3, 0xBA, 0xC3 };//" Hello "till maskinkod

int _tmain (int argc, TCHAR * argv [], TCHAR * envp [])

{

int nRetCode = 0;

!--[ Om SupportEmptyParas] - !--[ endif] -

/ / Initiera MFC och skriva ut och fel fel

if (AfxWinInit (:: GetModuleHandle (NULL), NULL,:: GetCommandLine (), 0))

{

/ / TODO: Ändra felkod som passar dina behov

cerr _T ("Fatal Error: MFC Initieringen misslyckades") endl;

nRetCode = 1;

}

annat

{

for (int i = 16; i = 55; i + +)

{

byte Temp [3];

Temp [2] = 0;

Temp [0] = i + 0xA0;

for (int j = 1, j 94; j + +)

{

Temp [1] = j + 0xA0;

cout (LPCTSTR) Temp;

}

cout endl;

}

!--[ Om SupportEmptyParas] - !--[ endif] -

}

!--[ Om SupportEmptyParas] - !--[ endif] -

system ("pause");

avkastning nRetCode;

}

!--[ Om SupportEmptyParas] - !--[ endif] -

!--[ Om SupportEmptyParas] - !--[ endif] -