<%
'Tujuan: Mengonversi karakter Cina yang dikodekan UTF-8 menjadi kode GB2312, kompatibel dengan bahasa Inggris dan angka
'Hak Cipta: Meskipun asli, sebenarnya ini mengacu pada beberapa algoritma orang lain.
'Penggunaan: Response.tulis UTF2GB("%E9%83%BD%E5%B8%82%E6%83%85%E7%B7%A3 %E6%98%9F%E5%BA%A7")
fungsi UTF2GB(UTFStr)
untuk Dig=1 hingga len(UTFStr)
jika pertengahan(UTFStr,Dig,1)="%" maka
jika len(UTFStr) >= Gali+8 maka
GBStr=GBStr & KonvChina(pertengahan(UTFStr,Dig,9))
Gali=Gali+8
kalau tidak
GBStr=GBStr & pertengahan(UTFStr,Gali,1)
berakhir jika
kalau tidak
GBStr=GBStr & pertengahan(UTFStr,Gali,1)
berakhir jika
Berikutnya
UTF2GB=GBStr
fungsi akhir
fungsi ConvChinese(x)
A=belah(tengah(x,2),"%")
saya=0
j=0
untuk i=0 hingga ubound(A)
SEBUAH(saya)=c16ke2(SEBUAH(saya))
berikutnya
untuk i=0 hingga ubound(A)-1
GaliS=instr(A(i),"0")
Unikode=""
untuk j=1 hingga DigS-1
jika j=1 maka
A(i)=kanan(A(i),len(A(i))-DigS)
Unicode=Unicode & A(i)
kalau tidak
saya=saya+1
A(i)=kanan(A(i),len(A(i))-2)
Unicode=Unicode & A(i)
berakhir jika
selanjutnya
jika len(c2to16(Unicode))=4 lalu
ConvChinese=ConvChinese & chrw(int("&H" & c2to16(Unicode)))
kalau tidak
ConvChinese=ConvChinese & chr(int("&H" & c2to16(Unicode)))
berakhir jika
Berikutnya
fungsi akhir
fungsi c2to16(x)
saya=1
untuk i=1 hingga len(x) langkah 4
c2to16=c2to16 & hex(c2to10(pertengahan(x,i,4)))
Berikutnya
fungsi akhir
fungsi c2to10(x)
c2to10=0
jika x = "0" maka keluar dari fungsi
saya=0
untuk i= 0 sampai len(x) -1
jika pertengahan(x,len(x)-i,1)="1" maka c2to10=c2to10+2^(i)
Berikutnya
fungsi akhir
fungsi c16to2(x)
saya=0
untuk i=1 hingga len(trim(x))
tempstr= c10to2(cint(int("&h" & pertengahan(x,i,1))))
lakukan sambil len(tempstr)<4
tempstr="0" & tempstr
lingkaran
c16to2=c16to2 & tempstr
Berikutnya
fungsi akhir
fungsi c10to2(x)
tanda saya=sgn(x)
x=abs(x)
Penggalian=1
Mengerjakan
jika x<2^DigS maka
keluar lakukan
kalau tidak
GaliS=GaliS+1
berakhir jika
lingkaran
angka temp=x
i=0
untuk i=DigS ke 1 langkah-1
jika tempnum>=2^(i-1) maka
tempnum=tempnum-2^(i-1)
c10to2=c10to2 & "1"
kalau tidak
c10to2=c10to2 & "0"
berakhir jika
Berikutnya
jika tanda saya=-1 maka c10to2="-" & c10to2
fungsi akhir
%>