1、'utf转国标---将UTF8编码的文本为GB编码的文本
复制代码代码如下所示:
功能utf2gb(utfstr)

挖= 1 len(utfstr)
'if the UTF8 code is converted at the beginning of%, the conversion is made.
如果中期(utfstr,挖,1)=%然后
UTF8编码的文本超过8,翻译成汉字
如果len(utfstr)> =挖+ 8
gbstr = gbstr convchinese(MID(utfstr,挖,9))
挖=挖+ 8
其他的
gbstr = gbstr中(utfstr,挖,1)
最后如果
其他的
gbstr = gbstr中(utfstr,挖,1)
最后如果
下一个
utf2gb = gbstr
端功能

UTF8编码的文本将被转换为汉字
功能convchinese(X)
a =拆分(中间(x,2),%)
我= 0
J = 0
我= 0,UBound(一)
一个(我)= c16to2(a(i))
下一个
我= 0,UBound(一)- 1
挖=仪器(一个(我),0 )
unicode
J = 1 digs-1
如果j=1,那么
a(i)=右(a(i),莱恩(a(i))-挖)
unicode(a)
其他的
i = i + 1
a(i)=右(a(i),莱恩(a(i))- 2)
unicode(a)
最后如果
下一个

如果len(c2to16(Unicode))= 4
convchinese = convchinese chrw(int(Hc2to16(Unicode)))
其他的
convchinese = convchinese CHR(int(Hc2to16(Unicode)))
最后如果
下一个
端功能

二进制代码被转换为十六进制代码。
功能c2to16(X)
我= 1
对于i = 1到莱恩(x)步骤4
c2to16 = c2to16 hex(c2to10(MID(X,I,4))))
下一个
端功能

二进制代码转换为十进制代码
功能c2to10(X)
c2to10 = 0
如果x =0 ,则退出函数
我= 0
对于i = 0到(x)- 1
如果中期(x,len(x)-我,1)=1,然后c2to10 = c2to10 + 2 ^(我)
下一个
端功能

十六码转换为二进制码
功能c16to2(X)
我= 0
对于i = 1到莱恩(修剪(x))
tempstr = c10to2(CINT(int(H中(X,我,1 ))))))
而Len(tempstr)<4
tempstr =0tempstr
环
c16to2 = c16to2 tempstr
下一个
端功能

十进制代码被转换为二进制代码。
功能c10to2(X)
mysign = sgn(x)
x = abs(x)
挖= 1
做
如果x<2,那么挖
退出
其他的
挖=挖+ 1
最后如果
环
tempnum = x

我= 0
我=挖1步步
如果tempnum > = 2 ^(i-1)然后
tempnum = tempnum-2 ^(i-1)
c10to2 = c10to2 1
其他的
c10to2 = c10to2 0
最后如果
下一个
如果mysign = 1然后c10to2 = c10to2
端功能

2、‘国标转utf8编码的文本,转换成UTF8编码文本GB
复制代码代码如下所示:
功能toutf8(szinput)
昏暗的WCH,UCH,szret
昏暗的X
昏暗的10 nasc2,nasc3
如果输入参数为空,则退出函数。
如果szinput =
toutf8 = szinput
退出功能
最后如果
开始转换
对于x = 1 Len(szinput)
使用中间函数拆分GB编码文本
WCH =中(szinput,x,1)
使用ascw函数返回每GB编码的Unicode字符编码的文本
注意:ASC函数返回ANSI字符码和差值。
10 = ascw(WCH)
如果10 10 10 << 0 + 65536 =

If (nAsc And HFF80) = 0 Then
szret = szret WCH
其他的
如果(NASC hf000)= 0
类=%六((((( NASC 2 ^ 6))或HC0)进制(NASC和h3f或H80)
szret = szret UCH
其他的
对the'gb Unicode字符代码编码的文本使用0800和FFFF之间的一个三字节的模板
UCH =进制(%(10 2 ^ 12)或_ HE0)%
海克斯((NASC / 2 ^ 6)和h3f或H80)%_
Hex (nAsc And H3F Or H80)
szret = szret UCH
最后如果
最后如果
下一个

toutf8 = szret
端功能

3、‘国标将Unicode转换GB编码的文本---为Unicode编码的文本
复制代码代码如下所示:
功能chinese2unicode(STR)
朦胧的我
昏暗的str_one
昏暗的str_unicode
如果(isnull(STR))然后
退出功能
最后如果
对于i = 1到莱恩(STR)
str_one =中(STR,我,1)
str_unicode = str_unicodechr(38)
str_unicode = str_unicodechr(35)
str_unicode = str_unicodechr(120)
str_unicode = str_unicode hex(ascw(str_one))
str_unicode = str_unicodechr(59)
下一个
chinese2unicode = str_unicode
端功能

4、'url解码
复制代码代码如下所示:
函数的URLDecode(任务)
昏暗的破坏
模糊的C,I,V
破坏=
我= 1 len(任务)
C =(任务中,我,1)
如果% 然后
V = eval(H+中(还是,我+ 1,2))
如果v<128,那么
destrchr破坏=(V)
i = i + 2
其他的
如果isvalidhex(MID(还是,我,3))然后
如果isvalidhex(MID(还是,我+ 3))然后
V = eval(H+中(还是,我+ +中(1,2)任务,我+ 4,2))
destrchr破坏=(V)
i = i + 5
其他的
V = eval(H+中(还是,我+ 1,2)+ CSTR(HEX(ASC(MID(还是,我+ 3,1 )))))))
destrchr破坏=(V)
i = i + 3
最后如果
其他的
destrc破坏=
最后如果
最后如果
其他的
如果
破坏=破坏
其他的
destrc破坏=
最后如果
最后如果
下一个
urldecode =破坏
端功能

确定十六代码是否有效。
功能isvalidhex(STR)
昏暗的C
isvalidhex =真
STR = ucase(STR)
如果len(str)<> 3 isvalidhex =假:退出功能
如果左(STR,1)<>%然后isvalidhex =假:退出功能
C =中(STR,2,1)
如果不是(((C > =0)和(C = )和(C < =Z)))然后isvalidhex =假:退出功能
C =中(STR,3,1)
如果不是(((C > =0)和(C = )和(C < =Z)))然后isvalidhex =假:退出功能
端功能
%>