Dieser Artikel gibt Ihnen einen sehr nützlichen Code, der in ASP übertragen werden kann. Dazu gehören UTF8 GB2312 Binärer Dezimalcode Hexadezimal.
'UTF zu GB --- UTF8-Codierungstext in GB-Codierungstext konvertieren
Funktion UTF2GB (UTFSTR) für Dig = 1 bis Len (UTFSTR)
'Wenn der Codierungstext von UTF8 mit%beginnt, wird er konvertiert
Wenn MID (UTFSTR, Dig, 1) =% dann
'UTF8 -Codierungstext ist größer als 8 und dann in chinesische Zeichen konvertiert
Wenn len (utfstr)> = dig+8 dann dann
Gbstr = gbstr & Convchinese (Mid (Utfstr, Dig, 9))
Dig = dig+8
anders
Gbstr = gbstr & mid (utfstr, dig, 1)
Ende wenn
anders
Gbstr = gbstr & mid (utfstr, dig, 1)
Ende wenn
nächste
UTF2GB = GBTR
Endfunktion
'UTF8 -Codierungstext werden in chinesische Zeichen konvertiert
Funktion Convchinese (x)
A = Split (Mid (x, 2),%)
I = 0
J = 0
für i = 0 bis Ubound (a)
A (i) = c16to2 (a (i))
nächste
für i = 0 bis Ubound (a) -1
Digs = instr (a (i), 0)
Unicode =
für j = 1 bis digs-1
Wenn J = 1 dann
A (i) = rechts (a (i), len (a (i)) -digs)
Unicode = unicode & a (i)
anders
I = i+1
A (i) = rechts (a (i), len (a (i))-2)
Unicode = unicode & a (i)
Ende wenn
nächste
Wenn Len (c2to16 (unicode)) = 4 das
Convchinese = Convchinese & Chrw (int (& c2to16 (Unicode)))
anders
Convchinese = Convchinese & chrt (int (& c2to16 (Unicode)))
Ende wenn
nächste
Endfunktion
'Binärcode konvertieren in Hexadezimalcode
Union C2to16 (x)
I = 1
für i = 1 bis len (x) Schritt 4
C2to16 = C2to16 & Hex (C2TO10 (MID (X, I, 4)))
nächste
Endfunktion
'Binärcode konvertiert in Dezimalcode
Funktion c2to10 (x)
C2to10 = 0
Wenn x = 0 dann beenden Sie die Funktion
I = 0
für i = 0 bis len (x) -1
Wenn mittel (x, len (x) -i, 1) = 1 dann c2to10 = c2to10+2^(i)
nächste
Endfunktion
'Der Schriftcode wird in Binärcode konvertiert
Funktion c16to2 (x)
I = 0
für i = 1 bis len (trim (x))
tempstr = c10to2 (cint (int (& h & mid (x, i, 1)))
Tun, während Len (tempstr) <4
Tempstr = 0 & tempstr
Schleife
C16to2 = c16to2 & tempstr
nächste
Endfunktion
'Top -Code konvertieren in Binärcode
Funktion c10to2 (x)
mySign = sgn (x)
x = ABS (x)
Digs = 1
TUN
Wenn x <2^gräbt dann
Ausgang tun
anders
Digs = Digs+1
Ende wenn
Schleife
tempnum = x
I = 0
für i = digs bis 1 Schritt-1
Wenn tempnum> = 2^(i-1) dann
tempnum = tempnum-2^(i-1)
C10to2 = C10to2 & 1
anders
C10to2 = C10to2 & 0
Ende wenn
nächste
Wenn mySign = -1 dann c10to2 = -& c10to2
Endfunktion
'GB zu UTF8-Convert-GB-Codierungstext in UTF8-Codierungstext
Funktion Toutf8 (Szinput)
Dim WCH, Uch, Szret
Dim x
Dim Nasc, Nasc2, Nasc3
'Wenn der Eingabeparameter leer ist, die Ausgangsfunktion
Wenn szinput = dann
Toutf8 = szinput
Ausgangsfunktion
Ende wenn
'Mit der Konvertierung beginnen
Für x = 1 bis len (szinput)
'Verwenden Sie die MID -Funktion, um den GB -Codierungstext zu teilen
WCH = MID (Szinput, x, 1)
'Verwenden Sie die ASCW -Funktion, um den Unicode -Zeichencode jedes GB -codierten Textes zurückzugeben
'Hinweis: Die ASC -Funktion gibt einen ANSI -Zeichencode zurück. Achten Sie auf den Unterschied
Nasc = ASCW (WCH)
Wenn nasc <0 dann Nasc = Nasc + 65536
If (nasc und & hff80) = 0 dann
Szret = Szret & WCH
Anders
If (nasc und & hf000) = 0 dann
Uch = % & Hex ((NASC / 2 ^ 6)) oder HC0 & Hex (NASC und & H3F oder H80)
Szret = Szret & Uch
Anders
'GB Coding Text Unicode -Zeichencode wird zwischen 0800 -FFFF verwendet
Uch = % & hex ((NASC / 2 ^ 12) oder & HE0) & % & _
Hex ((nasc / 2 ^ 6) und & h3f oder & h80) & % & _
Hex (NASC und & H3F oder & H80)
Szret = Szret & Uch
Ende wenn
Ende wenn
Nächste
Toutf8 = Szret
Endfunktion
'Gb zu unicode --- konvertieren GB-Codierungstext in den Unicode-Codierungstext
Funktion Chinese2Unicode (STR)
dim i
Dim str_one
Dim str_unicode
if (isnull (str)) dann
Ausgangsfunktion
Ende wenn
für i = 1 bis len (str)
Str_one = mid (str, i, 1)
Str_unicode = str_unicode & chr (38)
Str_unicode = str_unicode & chr (35)
Str_unicode = str_unicode & chr (120)
Str_unicode = str_unicode & hex (ASCW (str_one))
Str_unicode = str_unicode & chr (59)
nächste
CHITER2UNICODE = str_unicode
Endfunktion
'URL -Dekodierung
Funktion Urldecode (ENSTR)
Dunkelnde Zerstörungen
Dim C, I, V.
Zerstörung =
für i = 1 bis len (enstr)
C = MID (ENSTR, I, 1)
Wenn c =% dann
v = Eval (& H+Mid (ENSTR, I+1,2))
Wenn V <128 dann
Zerstörungen = Zerstörungen & chrt (v)
I = i+2
anders
Wenn isvalidhex (MID (ENSTR, I, 3)) dann
Wenn isvalidhex (MID (ENSTR, I+3, 3)) dann
V = eval (& h+mid (ENSTR, I+1,2)+MID (ENSTR, I+4,2))
Zerstörungen = Zerstörungen & chrt (v)
I = i+5
anders
v = eval (& h+mid (enstr, i+1,2)+cstr (hex (ASC (MID (ENSTR, I+3, 1)))))
Zerstörungen = Zerstörungen & chrt (v)
I = i+3
Ende wenn
anders
Zerstörungen = Zerstörungen & c
Ende wenn
Ende wenn
anders
Wenn c =+ dann
Zerstörung = Zerstörungen &
anders
Zerstörungen = Zerstörungen & c
Ende wenn
Ende wenn
nächste
URLDECODE = Zerstörungen
Endfunktion
'Bestimmen Sie, ob es sich um einen effektiven Hexadezimalcode handelt
Funktion isvalidhex (STR)
Dim c
Isvalidhex = true
STR = UCase (str)
Wenn len (str) <> 3 das isvalidhex = false: exit -Funktion
Wenn Sie links (str, 1) <>% dann isvalidhex = false: Exit -Funktion
C = MID (STR, 2,1)
wenn nicht (((((((((((((((((((((((c))) und Sie ((((((((((() = 9)) oder ((c> = a) und (c <= z)) dann isvalidhex = false: exit -Funktion
C = MID (STR, 3,1)
wenn nicht (((((((((((((((((((((((c))) und Sie ((((((((((() = 9)) oder ((c> = a) und (c <= z)) dann isvalidhex = false: exit -Funktion
Endfunktion