C Programma voor de Chinese interne code en de GB-code



/ / HZEncode.cpp: Bepaalt de plaats van binnenkomst voor de console applicatie.

/ /

/ *

Referenties:

Chinees karakter codering en representatie

1) Het karakter code uitwisselen (GB Code) Chinees code uitwisselen (GB code) wordt voornamelijk gebruikt voor karakter de uitwisseling van informatie.

GB Code: De National Bureau of Standards uitgegeven in 1980, "Informatie-uitwisseling met de Chinese gecodeerde tekenset" basisset "(codenaam GB2312 80) voorzien voor de uitwisseling code als een nationale standaard Chinees tekencodering.GB2312 80 symbolen totaal van 7445 tekens: een Chinees karakter symbool 6763 3755 (in alfabetische volgorde door de pinyin) twee karakters 3008 (alfabetische volgorde door radicalen) niet-karakter symbolen 682 GB2312 80 bepaalt dat alleGB code Chinese karakters en symbolen om een 94 94 vierkante vorm.In deze matrix, elke rij wordt een "zone", wordt elke kolom een "beetje."Deze matrix is eigenlijk samengesteld uit een 94-zone (nummers 01-94), elke wijk heeft 94 bits (nummers 01 tot 94) van het Chinese karakter set.Een teken positie waar het netnummer en het nummer combinaties om de Chinese karakters van de vorm "netnummer."Onder hen, twee van de code van hoog en laag voor het bit nummer twee.Dit kengetal kan unieke identificatie van een bepaald teken of tekens, integendeel, elk teken of symbool komt overeen met een unieke netnummer, is er geen her-code.

Netnummer als volgt verdeeld:

De inhoud van een zone-code van de verschillende symbolen op het toetsenbord is nog niet alles Zone 2 Zone 3 serienummer van de symbolen op het toetsenbord (gegeven door de Chinese manier) 4-5 District 6 District, de Japanse alfabet Russische alfabet Griekse alfabet 7 District 8 Districtidentificeren fonetische alfabet klinkers en tonen de naam van het tabblad symbolen Ruimte 10 tot 15 september met een 16-55 district-niveau gebied is niet karakter (in Pinyin alfabetische volgorde) 56-87 gebied twee karakters (in alfabetische volgorde radicalen) 88- 94 aangepaste karakter omgeving

Uit het bovenstaande kunnen we zien dat alle Chinese tekens en symbolen van de 94 gebieden kunnen worden verdeeld in vier groepen:

① 1 -15 zone: een grafisch symbool gebied.Waarvan 19 gebieden als de standaard symbool gebied; 10 15 De omgeving voor de aangepaste symbool.

② 16 -55 zone: als een personage gebied, met inbegrip van de 3755 Chinese karakters.Karakter van deze gebieden in alfabetische volgorde, zijn homoniemen in volgorde door een beroerte.

③ 56 -87: zone voor de twee Chinese karakters, bevat 3.008 Chinese karakters.Het karakter van deze gebieden is de sorteervolgorde van radicale beroerte.

④ 88 -94 zone: voor de aangepaste karakter gebied.

GB Code bepaalt dat elk karakter (waaronder ook niet-personage symbool), uitgedrukt door een 2-byte-code.De hoogste bit van elke byte 0 is, gebruik alleen de onderste 7 bits, terwijl de onderste 7-bits codering van 34 hebben gebruikt voor de controle, zodat elke byte is slechts 27 tot 34 = 94 codes voor Chinese karakters.2 bytes zijn 9494 = 8836 tekencodering.Zei een Chinees karakter in 2 bytes, high byte code die overeenkomt met het regelnummer in de tabel, genaamd het netnummer, lage byte-code overeenkomt met de kolom aantal in de tabel, genaamd bits getal.

Het toepassingsgebied van de Chinese nationale norm code in binair: 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-bits ASCII-code bestaat uit 128 tekens.Dat codeert voor de waarde van 031 (0,000,000,000,011,111) niet overeen met een afdrukbare tekens, vaak aangeduid als controle karakters, die worden gebruikt in computer communicatie of computer apparatuur, controle op de functie van de controle.Codewaarde 32 (00100000) is de spatie SP.Codewaarde 127 (1111111) is om de tekens te verwijderen DEL.

Chinese nationale standaard binaire code van de uitgangspositie van keuze is 00100001 (33) 10 is de ASCII-code om de 32 control characters en ruimte tekens over te slaan.Daarom is de Chinese nationale standaard code van hoge en lage, vergeleken met de overeenkomstige netnummer Groot (32) 10 of (00,1 miljoen) 2 of (20) H, te weten: de nationale standaard code hoog = netnummer + 20H (H hexadecimaal) GBcode-bits code + 20H = Laag

2) Chinese machine-code (de code) (Chinese opslag yards)

Chinese machine code (de code) (Chinese karakters opgeslagen code) is te verenigen de verschillende invoer van Chinese karakters code vertegenwoordiging in de computer.Om de code in een verscheidenheid van tekens in te voeren binnen de eengemaakte computer, is er een winkel gewijd aan de karakters in de computer machine code met behulp van de tekens worden ingevoerd met behulp van een verscheidenheid van invoer van Chinese karakters verenigd code in machine-code voor Chinese karaktersopslag, voor het Chinese karakter verwerking te vergemakkelijken in de machine-code is in de computer opslaan, verwerken code.Computer is het noodzakelijk om te gaan met Chinese karakters, te maken hebben met het Engels.Daarom moet de computer in staat zijn om onderscheid te maken tussen Chinese karakters en Engels karakters.Engels tekens van de machine code is het hoogst voor de 8-bits ASCII-code 0.Om te voorkomen dat 7-bits ASCII-code met het conflict, de nationale norm code voor elke byte van de hoogste bit van 0 tot 1, en de resterende bits blijven ongewijzigd, zoals het Chinese karakter encoding machine code.

Chinese machine-code van de reeks in binair: 1.010.000.110.100.001 1.111.111.011.111.110 machine code van de hoogte-en dieptepunten dan de overeenkomstige nationale norm code van hoge en lage grote (128) 10 of (10 miljoen) 2 of (80) H, te weten: de machinecode hoog = GB code hoog + 80H machine code laag = GB code laag + 80H en ook omdat: GB code hoog = netnummer + 20H GB code lage = bit code + 20H dus: machine code hoog = netnummer + A0H machinecode lage bit code + A0H = dat wil zeggen, machine code machine code hoog en laag, vergeleken met de overeenkomstige netnummer en locatie-code grote (160) 10 of (10,1 miljoen) 2 of (A0) H Voorbeeld: het Chinese karakter "ah"Het netnummer is" 1601 ", in welk gebied code (16) 10 of (10) H,-bit-code (01) 10 of (01) H.Dan: machine code hoog = 10H + A0H = B0H machine code laag = 01H + A0H = A1H dus: machine-code = B0A1H

De volgende wordt geciteerd fragment:

!--[ If SupportEmptyParas] - !--[ endif] -

3) Het karakter invoercode (buitenste code)

Invoer van Chinese karakters code (buitenste code) is een personage aan het karakter invoer via een toetsenbord van een computer is ontworpen code.Engels-ingang, wat het karakter zou input fase op welke toets, voert u dezelfde code en machine code.Invoer van Chinese karakters kan input worden volgens een paar belangrijke karakters.Er zijn honderden invoer van Chinese karakters programma, maar variëren de externe input in de computer-code zal worden omgezet in een verenigd binnen de code.Invoer van Chinese karakters programma kan worden onderverdeeld in de volgende 4 types:

(1) tooncode: Als de spelling, Larry, het Microsoft Pinyin

(2) Shape-code: Als er vijf slagen, Zheng-code, Shape-code, enz.

(3) codes kan klinken: zoals smart ABC, natuurlijke codes

(4) numerieke code: Als het netnummer, telegraaf-codes

4) Het karakter glyph-code (output code)

Chinese Karakter Code (output-codes) voor weergave en afdrukken van Chinese karakters, is de digitale informatie van de Chinese karakters.Chinese karakters in de code is een numerieke code om karakters te vertegenwoordigen, maar de output in om mensen in staat stellen Chinese karakters, Chinees lettertype te zien worden uitgevoerd.In het Chinese systeem, de algemene matrix om de vorm te vertegenwoordigen.16 * 16 karakter dot matrix geven 16 back-up bin conf config gegevens eshow_sitemap.html generate.sh log maint sitemap.html svn tmp 16 rooster vorm van het woord tot en met 32 bytes (gebruik maken van 16 back-up bin conf config gegevens eshow_sitemap.html genereren.sh log maint sitemap.html svn tmp 16 / 8 = 32) geheugen, 24 back-up bin conf config gegevens eshow_sitemap.html generate.sh log maint sitemap.html svn tmp 24 rooster vorm van het woord tot en met 72 bytes gebruiken (24 back-upbin conf config gegevens eshow_sitemap.html generate.sh log maint sitemap.html svn tmp 24 / 8 = 72) opslag.

In het algemeen, de prestaties van de Chinese karakters met behulp van het rooster is groter, hoe beter de kwaliteit van Chinese karakters, natuurlijk, elk personage dot-matrix, hoe groter de hoeveelheid opslagruimte nodig.

5) Het karakter adrescode

Karakter adrescode is het Chinese karakter bibliotheek (vooral verwijst naar de hele vorm van de dot matrix lettertype bibliotheek) opgeslagen in het logische adres gegevens van de Chinese karakters.In het Chinese karakter bibliotheek, de vorm informatie is een bepaalde volgorde (de meeste van de Chinese wisselkoers-codes in overeenstemming met de standaard volgorde van Chinese karakters) permanent opgeslagen in opslagmedia, zodat de personages zijn meestal adrescode is een continu en ordelijk, en met de personages in decode heeft een eenvoudige relatie tussen, om Chinese karakters te vereenvoudigen in de code om code-omzetting adres.

De volgende wordt geciteerd fragment:

* /

!--[ If SupportEmptyParas] - !--[ endif] -

# Include "stdafx.h"

# Include "HZEncode.h"

!--[ If SupportEmptyParas] - !--[ endif] -

# Ifdef _DEBUG

# Definieer nieuwe DEBUG_NEW

# Undef THIS_FILE

static char THIS_FILE [] = __FILE__;

# Endif

# Definieer UNICODE

# Definieer _UNICODE

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

/ / De ene en enige applicatie object

!--[ If SupportEmptyParas] - !--[ endif] -

CWinApp theApp;

!--[ If SupportEmptyParas] - !--[ endif] -

using namespace std;

unsigned short * ptr;

char * pszHZ = "ah";

byte bt [] = {0xC4, 0xe3, 0xBA, 0xC3 };//" Hello "om de machine-code

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

{

int nRetCode = 0;

!--[ If SupportEmptyParas] - !--[ endif] -

/ / Initialiseren MFC en print en fout is opgetreden

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

{

/ / TODO: verander foutcode aan uw behoeften

cerr _T ("Fatal Error: MFC initialisatie is mislukt") endl;

nRetCode = 1;

}

anders

{

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;

}

!--[ If SupportEmptyParas] - !--[ endif] -

}

!--[ If SupportEmptyParas] - !--[ endif] -

system ("pause");

terug nRetCode;

}

!--[ If SupportEmptyParas] - !--[ endif] -

!--[ If SupportEmptyParas] - !--[ endif] -