UTF8 en GB2312 convertit le texte codé UTF8 en texte codé GB, et le texte codé UTF8 sera converti en codes de caractères chinois. Les amis dans le besoin peuvent s'y référer. 1. 'UTF en GB --- Convertir le texte codé UTF8 en texte codé GB
Copiez le code comme suit :
fonction UTF2GB(UTFStr)
pour Dig=1 à len(UTFStr)
'Convertir si le texte codé en UTF8 commence par %
si mid(UTFStr,Dig,1)=% alors
'Le texte codé en UTF8 supérieur à 8 est converti en caractères chinois
si len(UTFStr) >= Dig+8 alors
GBStr=GBStr & ConvChinese(mid(UTFStr,Dig,9))
Creuser=Creuser+8
autre
GBStr=GBStr & milieu(UTFStr,Dig,1)
finir si
autre
GBStr=GBStr & milieu(UTFStr,Dig,1)
finir si
suivant
UTF2GB=GBStr
fonction de fin
'Le texte codé en UTF8 sera converti en caractères chinois
fonction ConvChinese(x)
A=divisé(milieu(x,2),%)
je = 0
j=0
pour i=0 à ubound(A)
UNE(je)=c16à2(UNE(je))
suivant
pour i=0 à ubound(A)-1
DigS=instr(A(i),0)
Unicode=
pour j=1 à DigS-1
si j=1 alors
A(i)=droite(A(i),len(A(i))-DigS)
Unicode=Unicode & A(i)
autre
je=i+1
A(i)=droite(A(i),len(A(i))-2)
Unicode=Unicode & A(i)
finir si
suivant
si len(c2to16(Unicode))=4 alors
ConvChinese=ConvChinese & chrw(int(&H & c2to16(Unicode)))
autre
ConvChinese=ConvChinese & chr(int(&H & c2to16(Unicode)))
finir si
suivant
fonction de fin
'Convertir le code binaire en code hexadécimal
fonction c2to16(x)
je = 1
pour i=1 à len(x) étape 4
c2to16=c2to16 & hex(c2to10(mid(x,i,4)))
suivant
fonction de fin
'Convertir le code binaire en code décimal
fonction c2to10(x)
c2à10=0
si x = 0 alors quittez la fonction
je = 0
pour i= 0 à len(x) -1
si mid(x,len(x)-i,1)=1 alors c2to10=c2to10+2^(i)
suivant
fonction de fin
'Convertir le code hexadécimal en code binaire
fonction c16to2(x)
je = 0
pour i=1 à len(trim(x))
tempstr= c10to2(cint(int(&h & mid(x,i,1))))
faire pendant len(tempstr)<4
tempstr=0&tempstr
boucle
c16to2=c16to2 & tempstr
suivant
fonction de fin
'Convertir le code décimal en code binaire
fonction c10to2(x)
monsign=sgn(x)
x=abdos(x)
Fouilles=1
faire
si x<2^DigS alors
sortir faire
autre
Creuser=Creuser+1
finir si
boucle
numéro temp=x
je = 0
pour i=DigS à 1 étape-1
si tempnum>=2^(i-1) alors
tempnum=tempnum-2^(i-1)
c10à2=c10à2 & 1
autre
c10à2=c10à2 & 0
finir si
suivant
si monsign=-1 alors c10to2=- & c10to2
fonction de fin
2. 'GB en UTF8 - Convertir le texte codé GB en texte codé UTF8
Copiez le code comme suit :
Fonction toUTF8(szInput)
Dim wch,uch,szRet
Dim x
Faible nAsc, nAsc2, nAsc3
'Si le paramètre d'entrée est vide, quittez la fonction
Si szInput = Alors
toUTF8 = szInput
Fonction de sortie
Fin si
'Démarrer la conversion
Pour x = 1 À Len(szInput)
'Utiliser la fonction Mid pour diviser le texte codé en Go
wch = Milieu (szInput, x, 1)
'Utilisez la fonction ascW pour renvoyer le code de caractère Unicode de chaque texte codé en Go
'Remarque : la fonction asc renvoie le code de caractère ANSI, faites attention à la différence
nAsc = AscW(wch)
Si nAsc < 0 Alors nAsc = nAsc + 65536
Si (nAsc et &HFF80) = 0 Alors
szRet = szRet & wch
Autre
Si (nAsc Et &HF000) = 0 Alors
uch = % & Hex(((nAsc / 2 ^ 6)) Ou &HC0) & Hex(nAsc Et &H3F Ou &H80)
szRet = szRet&uch
Autre
'Le code de caractères Unicode du texte codé en Go adopte un modèle de trois octets entre 0800 et FFFF.
uch = % & Hex((nAsc / 2 ^ 12) Ou &HE0) & % & _
Hex((nAsc / 2 ^ 6) Et &H3F Ou &H80) & % & _
Hex (nAsc et &H3F ou &H80)
szRet = szRet&uch
Fin si
Fin si
Suivant
toUTF8 = szRet
Fonction de fin
3. 'Go en Unicode --- Convertir le texte codé en Go en texte codé Unicode
Copiez le code comme suit :
fonction chinois2unicode(Str)
je suis faible
faible Str_one
dimStr_unicode
si (est nul (Str)) alors
fonction de sortie
finir si
pour i=1 à len(Str)
Str_one=Milieu(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)
suivant
chinois2unicode=Str_unicode
fonction de fin
4. 'Décodage d'URL
Copiez le code comme suit :
Fonction URLDecode(enStr)
faible deStr
faible c,i,v
deStr=
pour i=1 à len(enStr)
c=Mid(enStr,i,1)
si c=% alors
v=eval(&h+Mid(enStr,i+1,2))
si v<128 alors
deStr=deStr&chr(v)
je = je + 2
autre
si isvalidhex(mid(enstr,i,3)) alors
si isvalidhex(mid(enstr,i+3,3)) alors
v=eval(&h+Mid(enStr,i+1,2)+Mid(enStr,i+4,2))
deStr=deStr&chr(v)
je = je + 5
autre
v=eval(&h+Mid(enStr,i+1,2)+cstr(hex(asc(Mid(enStr,i+3,1)))))
deStr=deStr&chr(v)
je = je + 3
finir si
autre
destr=destr&c
finir si
finir si
autre
si c=+ alors
deStr=deStr&
autre
deStr=deStr&c
finir si
finir si
suivant
URLDecode=deStr
fonction de fin
'Déterminer s'il s'agit d'un code hexadécimal valide
la fonction estvalidhex(str)
faible c
estvalidhex=true
str=ucase(str)
si len(str)<>3 alors isvalidhex=false:exit function
si left(str,1)<>% alors isvalidhex=false:exit function
c=milieu(str,2,1)
sinon (((c>=0) et (c<=9)) ou ((c>=A) et (c<=Z))) alors isvalidhex=false:exit function
c=milieu(str,3,1)
sinon (((c>=0) et (c<=9)) ou ((c>=A) et (c<=Z))) alors isvalidhex=false:exit function
fonction de fin
%>