[转]ASP实现关键词获取(各搜索引擎,GB2312及UTF-8)(4)
ConvChinese=ConvChinese & chrw(int("&H" & c2to16(Unicode)))
else
ConvChinese=ConvChinese & chr(int("&H" & c2to16(Unicode)))
end if
next
end function
function U8Decode(enStr)
输入一堆有%分隔的字符串,先分成数组,根据utf8规则来判断补齐规则
输入:关 E5 85 B3 键 E9 94 AE 字 E5 AD 97
输出:关 B9D8 键 BCFC 字 D7D6
dim c,i,i2,v,deStr,WeiS
for i=1 to len(enStr)
c=Mid(enStr,i,1)
if c="%" then
v=c16to2(Mid(enStr,i+1,2))
判断第一次出现0的位置,
可能是1(单字节),3(3-1字节),4,5,6,7不可能是2和大于7
理论上到7,实际不会超过3。
WeiS=instr(v,"0")
v=right(v,len(v)-WeiS)第一个去掉最左边的WeiS个
i=i+3
for i2=2 to WeiS-1
c=c16to2(Mid(enStr,i+1,2))
c=right(c,len(c)-2)其余去掉最左边的两个
v=v & c
i=i+3
next
if len(c2to16(v)) =4 then
deStr=deStr & chrw(c2to10(v))
else
deStr=deStr & chr(c2to10(v))
end if
i=i-1
else
if c="+" then
deStr=deStr&" "
else
deStr=deStr&c
end if
end if
next
U8Decode = deStr
end function
function c16to2(x)
这个函数是用来转换16进制到2进制的,可以是任何长度的,一般转换UTF-8的时候是两个长度,比如A9
内容版权声明:除非注明,否则皆为本站原创文章。