UTF8 a GB2312 convierte el texto codificado en UTF8 en texto codificado en GB, y el texto codificado en UTF8 se convertirá en códigos de caracteres chinos. Los amigos que lo necesiten pueden consultarlo. 1. 'UTF a GB---Convierte texto codificado UTF8 a texto codificado GB
Copie el código de código de la siguiente manera:
función UTF2GB(UTFStr)
para Dig=1 a len(UTFStr)
'Convertir si el texto codificado en UTF8 comienza con %
si mid(UTFStr,Dig,1)=% entonces
'El texto codificado en UTF8 mayor que 8 se convierte a caracteres chinos
si len(UTFStr) >= Dig+8 entonces
GBStr=GBStr & ConvChinese(mediados(UTFStr,Dig,9))
Excavar=Excavar+8
demás
GBStr=GBStr y medio(UTFStr,Dig,1)
terminar si
demás
GBStr=GBStr y medio(UTFStr,Dig,1)
terminar si
próximo
UTF2GB=GBStr
función final
'El texto codificado en UTF8 se convertirá a caracteres chinos
función ConvChinese(x)
A=división(media(x,2),%)
yo=0
j=0
para i=0 a ulimitado(A)
A(i)=c16to2(A(i))
próximo
para i=0 a ubound(A)-1
DigS=instr(A(i),0)
Unicódigo=
para j=1 a DigS-1
si j=1 entonces
A(i)=derecha(A(i),len(A(i))-DigS)
Unicode=Unicode y A(i)
demás
yo=yo+1
A(i)=derecha(A(i),len(A(i))-2)
Unicode=Unicode y A(i)
terminar si
próximo
si len(c2to16(Unicode))=4 entonces
ConvChinese=ConvChinese & chrw(int(&H & c2to16(Unicode)))
demás
ConvChinese=ConvChinese & chr(int(&H & c2to16(Unicode)))
terminar si
próximo
función final
'Convierte código binario a código hexadecimal
función c2to16(x)
yo=1
para i=1 a len(x) paso 4
c2to16=c2to16 & hexadecimal(c2to10(medio(x,i,4)))
próximo
función final
'Convierte código binario a código decimal
función c2a10(x)
c2a10=0
si x=0 entonces sale de la función
yo=0
para i= 0 a len(x) -1
si mid(x,len(x)-i,1)=1 entonces c2to10=c2to10+2^(i)
próximo
función final
'Convierte código hexadecimal a código binario
función c16to2(x)
yo=0
para i=1 a len(trim(x))
tempstr= c10to2(cint(int(&h & mid(x,i,1))))
hacer mientras len(tempstr)<4
tempstr=0&tempstr
bucle
c16to2=c16to2 & tempstr
próximo
función final
'Convierte código decimal a código binario
función c10to2(x)
mi signo=sgn(x)
x=abs(x)
Excavaciones=1
hacer
si x<2^DigS entonces
salir hacer
demás
Excavar=Excavar+1
terminar si
bucle
número temporal=x
yo=0
para i=Excavar a 1 paso-1
si tempnum>=2^(i-1) entonces
número temporal=número temporal-2^(i-1)
c10to2=c10to2 & 1
demás
c10to2=c10to2 & 0
terminar si
próximo
si mi signo = -1 entonces c10to2 = - & c10to2
función final
2. 'GB a UTF8: convierte texto codificado en GB a texto codificado en UTF8
Copie el código de código de la siguiente manera:
Función paraUTF8(szInput)
Dim wch,uch,szRet
tenue x
Atenuado nAsc, nAsc2, nAsc3
'Si el parámetro de entrada está vacío, salga de la función
Si szInput = Entonces
toUTF8 = szEntrada
Función de salida
Terminar si
'Iniciar conversión
Para x = 1 a Len(szInput)
'Usa la función mid para dividir texto codificado en GB
wch = Medio(szEntrada, x, 1)
'Utilice la función ascW para devolver el código de carácter Unicode de cada texto codificado en GB
'Nota: la función asc devuelve código de caracteres ANSI, preste atención a la diferencia
nAsc = AscW(wch)
Si nAsc < 0 Entonces nAsc = nAsc + 65536
Si (nAsc y &HFF80) = 0 entonces
szRet = szRet & qué
Demás
Si (nAsc y &HF000) = 0 entonces
uch = % & Hex(((nAsc / 2 ^ 6)) O &HC0) & Hex(nAsc Y &H3F O &H80)
szRet = szRet&uch
Demás
'El código de caracteres Unicode del texto codificado en GB adopta una plantilla de tres bytes entre 0800 y FFFF
uch = % & Hex((nAsc / 2 ^ 12) O &HE0) & % & _
Hex((nAsc / 2 ^ 6) y &H3F o &H80) & % & _
Hex (nAsc y &H3F o &H80)
szRet = szRet&uch
Terminar si
Terminar si
Próximo
toUTF8 = szRet
Función final
3. 'GB a Unicode---Convierte texto codificado en GB a texto codificado Unicode
Copie el código de código de la siguiente manera:
función chino2unicode (Str)
oscuro yo
tenue Str_one
dimStr_unicode
si (es nulo (Str)) entonces
función de salida
terminar si
para i=1 a len(Str)
Str_one=Medio(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& Hexadecimal(ascw(Str_one))
Str_unicode=Str_unicode&chr(59)
próximo
chino2unicode=Str_unicode
función final
4. 'Decodificacion de URL
Copie el código de código de la siguiente manera:
Función URLDecode(enStr)
tenue deStr
tenue c,i,v
deStr=
para i=1 a len(enStr)
c=Medio(enStr,i,1)
si c=% entonces
v=eval(&h+Mid(enStr,i+1,2))
si v<128 entonces
deStr=deStr&chr(v)
yo=yo+2
demás
si esvalidhex(mid(enstr,i,3)) entonces
si esvalidhex(mid(enstr,i+3,3)) entonces
v=eval(&h+Medio(enStr,i+1,2)+Medio(enStr,i+4,2))
deStr=deStr&chr(v)
yo=yo+5
demás
v=eval(&h+Mid(enStr,i+1,2)+cstr(hex(asc(Mid(enStr,i+3,1)))))
deStr=deStr&chr(v)
yo=yo+3
terminar si
demás
destr=destr&c
terminar si
terminar si
demás
si c=+ entonces
deStr=deStr&
demás
deStr=deStr&c
terminar si
terminar si
próximo
URLDecode=deStr
función final
'Determinar si es un código hexadecimal válido
función isvalidhex(cadena)
tenue c
isvalidhex=verdadero
cadena=ucase(cadena)
si len(str)<>3 entonces isvalidhex=false:salir de la función
si left(str,1)<>% entonces isvalidhex=false:salir de la función
c=medio(cadena,2,1)
si no (((c>=0) y (c<=9)) o ((c>=A) y (c<=Z))) entonces isvalidhex=false:salir de la función
c=medio(cadena,3,1)
si no (((c>=0) y (c<=9)) o ((c>=A) y (c<=Z))) entonces isvalidhex=false:salir de la función
función final
%>