<%
„Zweck: UTF-8-codierte chinesische Zeichen in GB2312-Code konvertieren, kompatibel mit Englisch und Zahlen.“
„Copyright: Obwohl es original ist, bezieht es sich tatsächlich auf einige Algorithmen anderer.“
'Verwendung: Response.write UTF2GB("%E9%83%BD%E5%B8%82%E6%83%85%E7%B7%A3 %E6%98%9F%E5%BA%A7")
Funktion UTF2GB(UTFStr)
für Dig=1 bis len(UTFStr)
if mid(UTFStr,Dig,1)="%" dann
wenn len(UTFStr) >= Dig+8 dann
GBStr=GBStr & ConvChinese(mid(UTFStr,Dig,9))
Graben=Graben+8
anders
GBStr=GBStr & mid(UTFStr,Dig,1)
Ende wenn
anders
GBStr=GBStr & mid(UTFStr,Dig,1)
Ende wenn
nächste
UTF2GB=GBStr
Endfunktion
Funktion ConvChinese(x)
A=split(mid(x,2),"%")
ich=0
j=0
für i=0 bis ubound(A)
A(i)=c16to2(A(i))
next
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)=right(A(i),len(A(i))-DigS)
Unicode=Unicode & A(i)
anders
i=i+1
A(i)=right(A(i),len(A(i))-2)
Unicode=Unicode & A(i)
Ende wenn
next
if len(c2to16(Unicode))=4 then
ConvChinese=ConvChinese & chrw(int("&H" & c2to16(Unicode)))
anders
ConvChinese=ConvChinese & chr(int("&H" & c2to16(Unicode)))
Ende wenn
nächste
Endfunktion
Funktion c2to16(x)
i=1
für i=1 bis len(x) Schritt 4
c2to16=c2to16 & hex(c2to10(mid(x,i,4)))
nächste
Endfunktion
Funktion c2to10(x)
c2to10=0
Wenn x = „0“, dann beenden Sie die Funktion
ich=0
für i= 0 bis len(x) -1
if mid(x,len(x)-i,1)="1" then c2to10=c2to10+2^(i)
nächste
Endfunktion
Funktion c16to2(x)
ich=0
für i=1 zu 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
Funktion c10to2(x)
mysign=sgn(x)
x=abs(x)
Ausgrabungen=1
Tun
wenn x<2^DigS dann
beenden tun
anders
DigS=DigS+1
Ende wenn
Schleife
tempnum=x
i=0
für i=DigS auf 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
%>