UTF8 ke GB2312 mengubah teks berkode UTF8 menjadi teks berkode GB, dan teks berkode UTF8 akan diubah menjadi kode karakter Cina. 1. 'UTF ke GB--- Ubah teks berkode UTF8 menjadi teks berkode GB
Copy kode kodenya sebagai berikut:
fungsi UTF2GB(UTFStr)
untuk Dig=1 hingga len(UTFStr)
'Konversikan jika teks yang dikodekan UTF8 dimulai dengan %
jika pertengahan(UTFStr,Dig,1)=% maka
'Teks berkode UTF8 yang lebih besar dari 8 dikonversi ke karakter Cina
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
'Teks yang dikodekan UTF8 akan dikonversi ke karakter Cina
fungsi KonvCina(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
Berikutnya
jika len(c2to16(Unicode))=4 maka
ConvChinese=ConvChinese & chrw(int(&H & c2to16(Unicode)))
kalau tidak
ConvChinese=ConvChinese & chr(int(&H & c2to16(Unicode)))
berakhir jika
Berikutnya
fungsi akhir
'Ubah kode biner menjadi kode heksadesimal
fungsi c2to16(x)
saya=1
untuk i=1 hingga len(x) langkah 4
c2to16=c2to16 & hex(c2to10(pertengahan(x,i,4)))
Berikutnya
fungsi akhir
'Ubah kode biner menjadi kode desimal
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
'Ubah kode heksadesimal menjadi kode biner
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
'Ubah kode desimal menjadi kode biner
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
saya=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
2. 'GB ke UTF8--Mengonversi teks berkode GB menjadi teks berkode UTF8
Copy kode kodenya sebagai berikut:
Fungsi keUTF8(szInput)
Redupkan yang, uh, szRet
Redupkan x
Redupkan nAsc, nAsc2, nAsc3
'Jika parameter input kosong, keluar dari fungsinya
Jika szInput = Lalu
keUTF8 = szInput
Fungsi Keluar
Akhiri Jika
'Mulai konversi
Untuk x = 1 Ke Len(szInput)
'Gunakan fungsi tengah untuk membagi teks yang disandikan GB
wch = Tengah(szInput, x, 1)
'Gunakan fungsi ascW untuk mengembalikan kode karakter Unicode dari setiap teks yang dikodekan GB
'Catatan: fungsi asc mengembalikan kode karakter ANSI, perhatikan perbedaannya
nAsc = AscW(wch)
Jika nAsc < 0 Maka nAsc = nAsc + 65536
Jika (nAsc Dan &HFF80) = 0 Maka
szRet = szRet & wch
Kalau tidak
Jika (nAsc Dan &HF000) = 0 Maka
uch = % & Hex(((nAsc / 2 ^ 6)) Atau &HC0) & Hex(nAsc Dan &H3F Atau &H80)
szRet = szRet&uch
Kalau tidak
'Kode karakter Unicode dari teks yang dikodekan GB mengadopsi templat tiga byte antara 0800 - FFFF
uch = % & Hex((nAsc / 2 ^ 12) Atau &HE0) & % & _
Hex((nAsc / 2 ^ 6) Dan &H3F Atau &H80) & % & _
Hex(nAsc Dan &H3F Atau &H80)
szRet = szRet&uch
Akhiri Jika
Akhiri Jika
Berikutnya
keUTF8 = szRet
Fungsi Akhir
3. 'GB ke unicode--- Ubah teks yang disandikan GB menjadi teks yang disandikan unicode
Copy kode kodenya sebagai berikut:
fungsi chinese2unicode(Str)
redupkan aku
redupkan Str_one
dimStr_unicode
jika(isnull(Str)) maka
fungsi keluar
berakhir jika
untuk i=1 hingga len(Str)
Str_satu=Tengah(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_satu))
Str_unicode=Str_unicode&chr(59)
Berikutnya
chinese2unicode=Str_unicode
fungsi akhir
4. 'Penguraian kode URL
Copy kode kodenya sebagai berikut:
Fungsi URLDecode(enStr)
redupkan deStr
redup c,i,v
deStr=
untuk i=1 hingga len(enStr)
c=Tengah(enStr,i,1)
jika c=% maka
v=eval(&h+Tengah(enStr,i+1,2))
jika v<128 maka
deStr=deStr&chr(v)
saya=saya+2
kalau tidak
jika isvalidhex(mid(enstr,i,3)) maka
jika isvalidhex(mid(enstr,i+3,3)) maka
v=eval(&h+Tengah(enStr,i+1,2)+Tengah(enStr,i+4,2))
deStr=deStr&chr(v)
saya=saya+5
kalau tidak
v=eval(&h+Mid(enStr,i+1,2)+cstr(hex(asc(Mid(enStr,i+3,1)))))
deStr=deStr&chr(v)
saya=saya+3
berakhir jika
kalau tidak
destr=hancur&c
berakhir jika
berakhir jika
kalau tidak
jika c=+ maka
deStr=deStr&
kalau tidak
deStr=deStr&c
berakhir jika
berakhir jika
Berikutnya
URLDecode=deStr
fungsi akhir
'Tentukan apakah itu kode heksadesimal yang valid
fungsi isvalidhex(str)
redup c
isvalidhex=benar
str=ucase(str)
jika len(str)<>3 maka isvalidhex=false:keluar dari fungsi
jika kiri(str,1)<>% maka isvalidhex=false:keluar dari fungsi
c=tengah(str,2,1)
jika tidak (((c>=0) dan (c<=9)) atau ((c>=A) dan (c<=Z))) maka isvalidhex=false:exit function
c=tengah(str,3,1)
jika tidak (((c>=0) dan (c<=9)) atau ((c>=A) dan (c<=Z))) maka isvalidhex=false:exit function
fungsi akhir
%>