ASP写的汉字转换UTF-8及UTF-8转GB2312

汉字转换为UTF-8

function
chinese2unicode(Str)
dimi
dimStr_one
dimStr_unicode
fori=1tolen(Str)
Str_one=Mid(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)
next
Response.WriteStr_unicode
endfunction

UTF-8 To GB2312

functionUTF2GB(UTFStr)
forDig=1tolen(UTFStr)
ifmid(UTFStr,Dig,1)="%"then
iflen(UTFStr)>=Dig+8then
GBStr=GBStr&ConvChinese(mid(UTFStr,Dig,9))
Dig=Dig+8
else
GBStr=GBStr&mid(UTFStr,Dig,1)
endif
else
GBStr=GBStr&mid(UTFStr,Dig,1)
endif
next
UTF2GB=GBStr
endfunction

functionConvChinese(x)
A=split(mid(x,2),"%")
i=0
j=0

fori=0toubound(A)
A(i)=c16to2(A(i))
next

fori=0toubound(A)-1
DigS=instr(A(i),"0")
Unicode=""
forj=1toDigS-1
ifj=1then
A(i)=right(A(i),len(A(i))-DigS)
Unicode=Unicode&A(i)
else
i=i+1
A(i)=right(A(i),len(A(i))-2)
Unicode=Unicode&A(i)
endif
next

iflen(c2to16(Unicode))=4then
ConvChinese=ConvChinese&chrw(int("&H"&c2to16(Unicode)))
else
ConvChinese=ConvChinese&chr(int("&H"&c2to16(Unicode)))
endif
next
endfunction

functionc2to16(x)
i=1
fori=1tolen(x)step4
c2to16=c2to16&hex(c2to10(mid(x,i,4)))
next
endfunction

functionc2to10(x)
c2to10=0
ifx="0"thenexitfunction
i=0
fori=0tolen(x)-1
ifmid(x,len(x)-i,1)="1"thenc2to10=c2to10+2^(i)
next
endfunction

functionc16to2(x)
i=0
fori=1tolen(trim(x))
tempstr=c10to2(cint(int("&h"&mid(x,i,1))))
dowhilelen(tempstr)<4
tempstr="0"&tempstr
loop
c16to2=c16to2&tempstr
next
endfunction

functionc10to2(x)
mysign=sgn(x)
x=abs(x)
DigS=1
do
ifx<2^DigSthen
exitdo
else
DigS=DigS+1
endif
loop
tempnum=x

i=0
fori=DigSto1step-1
iftempnum>=2^(i-1)then
tempnum=tempnum-2^(i-1)
c10to2=c10to2&"1"
else
c10to2=c10to2&"0"
endif
next
ifmysign=-1thenc10to2="-"&c10to2
endfunction


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值