C-Programm für chinesische internen Codes und die GB-Code



/ / HZEncode.cpp: Definiert den Einstiegspunkt für die Konsolenanwendung.

/ /

/ *

Referenzen:

Chinesische Zeichenkodierung und Vertretung

1) Der Charakter Amtskennziffer (GB Code) Chinesisch Amtskennziffer (GB-Code) wird hauptsächlich für Charakter Informationsaustausch genutzt.

GB-Code: Der National Bureau of Standards herausgegeben im Jahre 1980, "Der Informationsaustausch mit den chinesischen codierten Zeichensatz" Basis-Set "(Codename GB2312 80) vorgesehen für den Austausch Code als nationale Norm chinesischen Zeichensatz.GB2312 80 verschiedenen Symbolen insgesamt 7445 Zeichen: ein chinesisches Zeichen Symbol 6763 3755 (in alphabetischer Reihenfolge von Pinyin) zwei Zeichen 3008 (alphabetische Reihenfolge durch Radikale) nicht Zeichensymbolen 682 GB2312 80 sieht, dass alleGB-Code chinesischen Schriftzeichen und Symbole zu einem 94 94 Quadrat.In dieser Matrix jede Zeile wird als "Zone", wird jede Spalte als "Bit".Diese Matrix ist eigentlich von einer 94-Zone (Nummern 01 bis 94) zusammensetzt, hat jeder Bezirk 94 Bit (Zahlen von 01 bis 94) der chinesischen Zeichensatz.Ein Charakter, an dem der Vorwahl und Zahlenkombinationen die chinesischen Schriftzeichen der Form "Vorwahl".Unter ihnen zwei der Code von hohen und niedrigen Bit für die Nummer zwei.Diese Vorwahl kann eindeutig identifiziert ein bestimmtes Zeichen oder Zeichen; im Gegenteil, jedes Zeichen oder Symbol, um eine einzigartige Vorwahl entspricht, gibt es keine re-Code.

Vorwahl wie folgt verteilt:

Der Inhalt einer Zone Code der verschiedenen Symbole auf der Tastatur ist nicht alles Zone 2 Zone 3 Seriennummer der Symbole auf der Tastatur (gegeben durch die chinesische Art) 4-5 District 6 Bezirk, der japanische Alphabet russischen Alphabets griechischen Alphabets 7. Bezirk 8. Bezirkidentifizieren phonetische Alphabet Vokale und Töne der Name Registerkarte Symbole Area September von 10 bis 15 mit einem 16-55 Bezirk-Level-Bereich ist nicht Zeichen (in Pinyin alphabetischer Reihenfolge) 56 bis 87 Gebiet zwei Zeichen (in alphabetischer Reihenfolge Radikale) 88- 94 benutzerdefinierte Zeichen Bereich

Aus dem oben sehen wir, dass alle chinesischen Zeichen und Symbole der 94 Bereiche lassen sich in vier Gruppen unterteilt werden:

① 1 -15 Zone: ein grafisches Symbol Bereich.Davon 19 Gebiete als die Standard-Symbol Gebiet; 10 15 area für das benutzerdefinierte Symbol.

② 16 -55 Zone: als ein Zeichen Bereich, einschließlich der 3755 chinesische Schriftzeichen.Charakter dieser Gebiete in alphabetischer Reihenfolge sind Homonyme, um durch Schlaganfall aufgeführt.

③ 56 -87 Zone: Zone für die beiden chinesischen Schriftzeichen enthält 3.008 chinesische Schriftzeichen.Der Charakter dieser Gebiete ist die Sortierung von radikalen Schlaganfall.

④ 88 -94 Zone: für die benutzerdefinierte Zeichen Bereich.

GB-Code sieht vor, dass jedes Zeichen (einschließlich einiger nicht-Zeichen-Symbol) durch eine 2-Byte-Code zum Ausdruck gebracht.Die höchste Bit jedes Byte 0 ist, verwenden Sie nur die unteren 7 Bits, während die unteren 7-Bit-Codierung von 34 für die Steuerung verwendet haben, so dass jedes Byte nur 27 ist - 34 = 94 Codes für chinesische Schriftzeichen.2 Byte = 8836 haben 9.494 Zeichencodierung.Sagte ein chinesisches Zeichen in 2 Bytes, High-Byte-Code entsprechend der Linie in der Tabelle, die so genannte Vorwahl; Low-Byte Code entsprechend der Spalte in der Tabelle, genannt Bit-Zahl.

Der Umfang der chinesischen nationalen Norm Code in Binär ist: 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-bit ASCII-Zeichen-Code ist aus 128 Zeichen bestehen.Welche kodiert den Wert von 031 (0,000,000,000,011,111) gilt nicht für druckbare Zeichen entsprechen, die häufig als Steuerzeichen, in der Kommunikation von Computern oder Computer-Ausrüstung, Kommunikation Kontrollfunktion der Kontrolle verwendet.Code-Wert 32 (00100000) ist das Leerzeichen SP.Code-Wert 127 (1111111) ist es, die Zeichen zu entfernen DEL.

Zeichencode beginnend GB 00100001 ist die binäre Position nach Wahl (33) 10 ist der ASCII-Code um die 32 Steuerzeichen und Leerzeichen überspringen.Daher ist die chinesische nationale Standard-Code von hoher und niedriger, verglichen mit der entsprechenden Vorwahl Groß (32) 10 oder (00100000) 2 oder (20) H, nämlich: die nationale Norm Code hoch = Vorwahl + 20H (H hexadezimal) GBCode-Bit-Code + 20H = Low

2) Chinesische Maschine (der Code) (chinesische Lagerplätzen)

Chinesische Maschine (der Code) (chinesische Schriftzeichen gespeicherten Code) auf die verschiedenen chinesischen Zeichen eingegeben Code Darstellung im Computer zu vereinheitlichen.Um den Code in einer Vielzahl von Zeichen innerhalb der Unified Computer einzugeben, gibt es ein Geschäft gewidmet, um die Zeichen im Inneren des Computers Maschine Code mit den Zeichen eingegeben werden mit einer Vielzahl von Schriftzeichen Eingang einheitliche Code in Maschinencode für chinesische SchriftzeichenLagerung, zur Erleichterung der chinesischen Schriftzeichen Verarbeitung in der Maschine Code wird in Computer Speicherung, Verarbeitung Code.Computer ist es erforderlich, mit chinesischen Schriftzeichen zu begegnen, haben mit den Engländern beschäftigen.Daher muss der Computer in der Lage sein zwischen chinesischen Schriftzeichen und englischen Zeichen zu unterscheiden.Englisch Zeichen des Maschinen-Code ist das höchste für die 8-Bit-ASCII-Code 0.Um nicht 7-bit ASCII-Code mit dem Konflikt, bleiben die nationalen Standard-Code für jedes Byte der höchsten Bit von 0 bis 1 und die restlichen Bits unverändert, da die chinesische Zeichenkodierung Maschinencode.

Chinesisch Maschinencode des Bereichs in binärer ist: 1.010.000.110.100.001 1.111.111.011.111.110 Maschinencode von den Höhen und Tiefen als die entsprechende nationale Norm Code von hohen und niedrigen groß (128) 10 oder (10000000) 2 oder (80) H, nämlich: die MaschineCode hoch = GB Code hoch + 80H Maschinencode low = GB Code low + 80H und auch, weil: GB Code hoch = Vorwahl + 20H GB Code low = Bit-Code + 20H so: Maschinencode hoch = Vorwahl + A0H MaschineCode niedrigen Bit-Code + A0H = das heißt, Maschinencode Maschinencode hoher und niedriger, verglichen mit der entsprechenden Vorwahl und Ortscode groß (160) 10 oder (10100000) 2 oder (A0) H Beispiel: das chinesische Schriftzeichen "ah"Die Vorwahl ist" 1601 ", in der Vorwahl (16) 10 oder (10) H,-Bit-Code (01) 10 oder (01) H.Dann: Maschinencode hoch = 10H + A0H = B0h Maschinencode low = 01H + A0H = A1H so: Maschinen-Code = B0A1H

Die folgende Fragment zitiert:

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

3) Die Zeicheneingabe Code (äußerer Code)

Schriftzeichen Eingang Code (äußerer Code) ist ein Charakter, den Charakter Eingabe über eine Tastatur entwickelt ein Computer-Code.Englisch-Eingang, was Zeicheneingabe auf welcher Tonart würde Phase, geben Sie den gleichen Code und Maschinencode.Schriftzeichen Eingang kann eingegeben werden nach ein paar wichtige Zeichen.Es gibt hunderte von chinesischen Schriftzeichen-Input-Programm, sondern variieren Sie den externen Eingang in den Computer-Code in ein einheitliches wird in den Code umgewandelt werden.Schriftzeichen-Input-Programm kann in die folgenden 4 Typen eingeteilt werden:

(1) Ton-Code: Wenn Sie die Schreibweise, Larry, das Microsoft Pinyin

(2) Shape-Code: Wenn fünf Schläge, Zheng-Code, Shape-Code, etc.

(3) Codes können klingen: wie Smart ABC, natürliche Codes

(4) Kennziffer: Wenn Sie die Vorwahl-, Telegrafen-Codes

4) Die Zeichenglyphe Code (Code-Ausgang)

Chinesische Zeichen-Code (Ausgabe Codes) zum Anzeigen und Drucken von chinesischen Schriftzeichen, werden die digitalen Informationen der chinesischen Schriftzeichen.Chinesische Zeichen im Code ist ein numerischer Code, um Zeichen zu repräsentieren, aber die Ausgabe, damit Menschen zu chinesischen Schriftzeichen, chinesische Schriftzeichen zu sehen Schrift ausgegeben werden sollen.In der chinesischen System der allgemeinen Matrix zur Darstellung der Form.16 * 16 Zeichen Punktmatrix zeigen 16 Backup-bin conf config Daten eshow_sitemap.html generate.sh Log maint sitemap.html svn tmp 16 Gitter Form des Wortes zu 32 Byte (Verwendung von 16 Backup-bin conf config Daten eshow_sitemap.html generieren.sh log maint sitemap.html svn tmp 16 / 8 = 32) Speicher, 24 Backup bin conf config Daten eshow_sitemap.html generate.sh Log maint sitemap.html svn tmp 24 Gitter Form des Wortes zu 72 Bytes zu verwenden (24 Backupbin conf config Daten eshow_sitemap.html generate.sh Log maint sitemap.html svn tmp 24 / 8 = 72) Lagerung.

Im Allgemeinen ist die Leistung der chinesischen Schriftzeichen mit Hilfe des Gitters größer ist, je besser die Qualität der chinesischen Schriftzeichen, natürlich, jeder Punkt-Matrix-Charakter je größer die Menge an Speicherplatz benötigt.

5) Der Charakter-Adress-Code

Character-Adress-Code ist das chinesische Schriftzeichen Bibliothek (bezieht sich hauptsächlich auf die ganze Form des Dot-Matrix-Schrift-Bibliothek) in der logischen Adresse Informationen der chinesischen Schriftzeichen gespeichert.In der chinesischen Schriftzeichen Bibliothek, die Form Informationen einer bestimmten Reihenfolge (die meisten der chinesischen Austausch-Codes in Übereinstimmung mit dem Standard, um der chinesischen Schriftzeichen) kontinuierlich in Speichermedien abgelegt ist, wird so die Charaktere sind meist Adress-Code eine kontinuierliche und ordentlich, und mit dem Zeichen in derCode hat eine einfache Beziehung zwischen der chinesischen Zeichen im Code zu Code-Konvertierung Adresse zu vereinfachen.

Die folgende Fragment zitiert:

* /

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

# Include "stdafx.h"

# Include "HZEncode.h"

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

# Ifdef _DEBUG

# Definieren Sie neue DEBUG_NEW

# Undef THIS_FILE

static char THIS_FILE [] = __FILE__;

# Endif

# Definieren UNICODE

# Definieren _UNICODE

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

/ / Der erste und einzige Anwendung Objekt

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

CWinApp theApp;

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

using namespace std;

unsigned short * ptr;

char * pszHZ = "ah";

Byte bt [] = {0xC4, 0xE3, 0xBA, 0xC3 };//" Hallo "zu den Maschinencode

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

{

int nRetCode = 0;

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

/ / Initialisierung MFC und drucken und Fehler auf Fehler

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

{

/ / TODO: Unter Fehlercode an Ihre Bedürfnisse

cerr _T ("Schwerwiegender Fehler: MFC-Initialisierung fehlgeschlagen") endl;

nRetCode = 1;

}

sonst

{

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");

Rückkehr nRetCode;

}

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

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