Nach dem Studium der Codierung haben wir die Beziehung zwischen GB2312 -Codierung und Standortcode gelernt. Nach dem Versuch haben wir dieses Programm bekommen.
Suche, niemand schien es zu schreiben, also habe ich es hier gepostet.
Original erster Veröffentlichung:
http://bbs.bluidea.com
http://mytju.com/classcode/
Nachdruck jederzeit, benutze es jederzeit.
1. Kurzbeschreibung
(1) Die Definition des GB2312 -Standards ist tatsächlich der Standortcode.
Insgesamt gibt es 94 Zeilen, 94 Spalten, Zeilen sind Flächencodes und Spalten sind Bitnummern.
Zum Beispiel beträgt der Vorwahlcode des Zeichens "Ah" 16 und die Bitnummer 01 und sein Positionscode 1601.
(2) Jedes Zeichen besteht aus einer Vorwahl + Bitnummer, die insgesamt zwei Bytes berücksichtigt.
Jedes Byte ist 01-94, was mit dem Kommunikationscontroller 0-31 in Konflikt steht.
Fügen Sie daher den Vorwahlcode und die Bit -Nummer 32 hinzu, um Konflikte zu vermeiden.
(3) Aus dem obigen ist jedes Byte 33-126, was mit ASCII codiert, die 0-127 codiert.
Fügen Sie also die höchste Position auf 1 hinzu, dh 128, um Konflikte zu vermeiden.
Am Ende ist jedes Byte 161-254.
2. Erreichen Sie
Das Prinzip ist sehr einfach, hinzufügen oder subtrahieren.
Ich werde die Funktion, die ich hier direkt ausgefüllt habe, veröffentlichen.
Die Codekopie lautet wie folgt:
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Functionchartoqwm (Byvalstr)
Dimshex, SHAG, SLOW, ILOW, IHIGH, SRESULT
Shex = Hex (ASC (STR)) 'Erhalten Sie die Codierung des inneren Code des Zeichens, wie z.
SHUGT = Links (Shex, 2) 'erhält das codierte hohe Stück wie B0.
Slow = Right (Shex, 2) 'bekommt das kodierende niedrige Bit wie A1.
'GB2312 Inner Code Range ist & ha1a1-& hfefe, und jedes Byte befindet sich zwischen A1-FE.
IFNOT (SHAGH> = "A1" und Shigh <= "fe") dann
Chartoqwm = ""
Ausgangsfunktion
Endif
ifnot (Slow> = "a1" und Slow <= "fe") dann
Chartoqwm = ""
Ausgangsfunktion
Endif
'Der GB -Austauschcode verwendet nur 7 Bit, und die hohe Position ist 1, das ist der innere Code. Die hohe Position ist wiederum 0 und der Tauschcode kann erhalten werden.
ilow = clng ("& h" & langsam) -128
IHIGH = CLNG ("& H" & SHUTH) -128
'Der Standortcode konflikt mit dem Kontrollcode 0-31, sodass nach dem Hinzufügen von 32 der Austauschcode derjenige ist. Subtrahieren Sie wiederum 32.
ilow = ilow-32
IHIGH = IHIGH-32
„OK, der Standortcode wurde erhalten.
sresult = ""
ifiHigh <10thhen
sresult = sresult & "0" & cstr (iHigh)
anders