UTF8 para GB2312 converte texto codificado em UTF8 em texto codificado em GB, e o texto codificado em UTF8 será convertido em códigos de caracteres chineses. Amigos necessitados podem consultá-lo. 1. 'UTF para GB --- Converte texto codificado UTF8 em texto codificado GB
Copie o código do código da seguinte forma:
função UTF2GB(UTFStr)
para Dig=1 para len(UTFStr)
'Converta se o texto codificado em UTF8 começar com %
se mid(UTFStr,Dig,1)=% então
'Texto codificado em UTF8 maior que 8 é convertido em caracteres chineses
se len(UTFStr) >= Dig+8 então
GBStr=GBStr & ConvChinese(mid(UTFStr,Dig,9))
Escavar=Escavar+8
outro
GBStr=GBStr & mid(UTFStr,Dig,1)
terminar se
outro
GBStr=GBStr & mid(UTFStr,Dig,1)
terminar se
próximo
UTF2GB=GBStr
função final
'O texto codificado em UTF8 será convertido em caracteres chineses
função ConvChinês(x)
A = divisão (meio (x, 2),%)
eu=0
j=0
para i = 0 para ubound (A)
UMA(eu)=c16to2(UMA(eu))
próximo
para i=0 para ubound(A)-1
DigS=instr(A(i),0)
Unicode =
para j=1 para DigS-1
se j = 1 então
A(i)=direita(A(i),len(A(i))-DigS)
Unicode=Unicode & A(i)
outro
eu=eu+1
A(i)=direita(A(i),len(A(i))-2)
Unicode=Unicode & A(i)
terminar se
próximo
se len(c2to16(Unicode))=4 então
ConvChinês=ConvChinês & chrw(int(&H & c2to16(Unicode)))
outro
ConvChinês=ConvChinês & chr(int(&H & c2to16(Unicode)))
terminar se
próximo
função final
'Converter código binário em código hexadecimal
função c2to16(x)
eu=1
para i=1 para len(x) etapa 4
c2to16=c2to16 & hex(c2to10(meio(x,i,4)))
próximo
função final
'Converter código binário em código decimal
função c2to10(x)
c2to10=0
se x = 0 então saia da função
eu=0
para i= 0 para len(x) -1
se mid(x,len(x)-i,1)=1 então c2to10=c2to10+2^(i)
próximo
função final
'Converter código hexadecimal em código binário
função c16to2(x)
eu=0
para i=1 para len(trim(x))
tempstr= c10to2(cint(int(&h & mid(x,i,1))))
faça enquanto len(tempstr)<4
tempstr=0&tempstr
laço
c16to2=c16to2 & tempstr
próximo
função final
'Converter código decimal em código binário
função c10to2(x)
meusinal=sgn(x)
x=abs(x)
Escavações=1
fazer
se x<2^DigS então
sair, faça
outro
DigS=DigS+1
terminar se
laço
número de temperatura=x
eu=0
para i=DigS para 1 passo-1
se tempnum>=2^(i-1) então
tempnum=tempnum-2^(i-1)
c10to2=c10to2 & 1
outro
c10to2=c10to2 & 0
terminar se
próximo
se meusinal=-1 então c10to2=- & c10to2
função final
2. 'GB para UTF8 - Converta texto codificado em GB em texto codificado em UTF8
Copie o código do código da seguinte forma:
Função paraUTF8(szInput)
Escureça o que, uh, szRet
Escurecer x
Dim nAsc, nAsc2, nAsc3
'Se o parâmetro de entrada estiver vazio, saia da função
Se szInput = Então
toUTF8 = szInput
Função de saída
Terminar se
'Iniciar conversão
Para x = 1 para Len(szInput)
'Use a função mid para dividir o texto codificado em GB
wch = Médio(szInput, x, 1)
'Use a função ascW para retornar o código de caracteres Unicode de cada texto codificado em GB
'Nota: a função asc retorna código de caracteres ANSI, preste atenção na diferença
nAsc = AscW(que)
Se nAsc <0 Então nAsc = nAsc + 65536
Se (nAsc e &HFF80) = 0 Então
szRet = szRet & qual
Outro
Se (nAsc e &HF000) = 0 Então
uch =% & Hex(((nAsc / 2 ^ 6)) Ou &HC0) & Hex(nAsc E &H3F Ou &H80)
szRet = szRet&uch
Outro
'O código de caracteres Unicode do texto codificado em GB adota um modelo de três bytes entre 0800 - FFFF
uch =% & Hex((nAsc / 2 ^ 12) Ou &HE0) &% & _
Hex((nAsc / 2 ^ 6) E &H3F Ou &H80) &% & _
Hexadecimal (nAsc e &H3F ou &H80)
szRet = szRet&uch
Terminar se
Terminar se
Próximo
toUTF8 = szRet
Função final
3. 'GB para unicode --- Converta texto codificado em GB em texto codificado em unicode
Copie o código do código da seguinte forma:
função chinês2unicode(Str)
escurecer eu
dim Str_one
dimStr_unicode
if(isnull(Str)) então
função de saída
terminar se
para i=1 para len(Str)
Str_one=Médio(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)
próximo
chinês2unicode=Str_unicode
função final
4. 'Decodificação de URL
Copie o código do código da seguinte forma:
Função URLDecode(enStr)
dim deStr
dim c,i,v
deStr =
para i=1 para len(enStr)
c=Médio(enStr,i,1)
se c=% então
v=eval(&h+Mid(enStr,i+1,2))
se v<128 então
deStr=deStr&chr(v)
eu=eu+2
outro
se isvalidhex(mid(enstr,i,3)) então
se isvalidhex(mid(enstr,i+3,3)) então
v=eval(&h+Mid(enStr,i+1,2)+Mid(enStr,i+4,2))
deStr=deStr&chr(v)
eu=eu+5
outro
v=eval(&h+Mid(enStr,i+1,2)+cstr(hex(asc(Mid(enStr,i+3,1)))))
deStr=deStr&chr(v)
eu=eu+3
terminar se
outro
destr=destr&c
terminar se
terminar se
outro
se c=+ então
deStr = deStr&
outro
deStr = deStr&c
terminar se
terminar se
próximo
URLDecode=deStr
função final
'Determina se é um código hexadecimal válido
função isvalidhex(str)
escurecer c
isvalidhex = verdadeiro
str=caso(str)
se len(str)<>3 então isvalidhex=false:função de saída
se esquerda(str,1)<>% então isvalidhex=false:função de saída
c=meio(str,2,1)
se não (((c>=0) e (c<=9)) ou ((c>=A) e (c<=Z))) então isvalidhex=false:exit function
c = meio (str,3,1)
se não (((c>=0) e (c<=9)) ou ((c>=A) e (c<=Z))) então isvalidhex=false:exit function
função final
%>