UTF-8转换GB2312功能

复制代码如下:<
'use: converting UTF-8 coded Chinese characters to GB2312 codes, compatible with English and numbers
版权:虽然它是原创的,但也提到了一些其他人的算法。
用法:response.write utf2gb(% % % % E9 83% BD E5 B8 % 82% E6 % 83% 85% % % % E6 E7 B7 A3 % % % % 98%号9F E5 BA A7 )


功能utf2gb(utfstr)
挖= 1 len(utfstr)
如果中期(utfstr,挖,1)=%然后
如果len(utfstr)> =挖+ 8
gbstr = gbstr convchinese(MID(utfstr,挖,9))
挖=挖+ 8
其他的
gbstr = gbstr中(utfstr,挖,1)
最后如果
其他的
gbstr = gbstr中(utfstr,挖,1)
最后如果
下一个
utf2gb = gbstr
端功能

功能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
端功能
%>