蓝派网(www.lan27.com)-精选网络资源,分享和交流! 文章首页站内搜索在线手册广告代码酷站欣赏万年历
您现在的位置: 蓝派网 >> 文章中心 >> 网络编程 >> ASP >> 正文

UTF8转gb2312的ASP代码

作者:佚名    文章来源:网络    更新时间:2008-7-20 19:10:15

<% 'UTF转GB---将UTF8编码文字转换为GB编码文字
function UTF2GB(UTFStr)

for Dig=1 to len(UTFStr)
'如果UTF8编码文字以%开头则进行转换
if mid(UTFStr,Dig,1)="%" then
    
'UTF8编码文字大于8则转换为汉字
    if len(UTFStr) >= Dig+8 then
       GBStr
=GBStr & ConvChinese(mid(UTFStr,Dig,9))
       Dig
=Dig+8
   
else
      GBStr
=GBStr & mid(UTFStr,Dig,1)
   
end if
else
     GBStr
=GBStr & mid(UTFStr,Dig,1)
end if
next
UTF2GB
=GBStr
end function

'UTF8编码文字将转换为汉字
function ConvChinese(x)
   A
=split(mid(x,2),"%")
   i
=0
   j
=0
for i=0 to ubound(A)
     A(i)
=c16to2(A(i))
next
for i=0 to ubound(A)-1
    DigS
=instr(A(i),"0")
    Unicode
=""
   
for j=1 to DigS-1
     
if j=1 then
        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)
     
end if
   
next

   
if len(c2to16(Unicode))=4 then
       ConvChinese
=ConvChinese & chrw(int("&H" & c2to16(Unicode)))
   
else
       ConvChinese
=ConvChinese & chr(int("&H" & c2to16(Unicode)))
   
end if
next
end function

'二进制代码转换为十六进制代码
function c2to16(x)
   i
=1
  
for i=1 to len(x) step 4
      c2to16
=c2to16 & hex(c2to10(mid(x,i,4)))
  
next
end function

'二进制代码转换为十进制代码
function c2to10(x)
   c2to10
=0
  
if x="0" then exit function
     i
=0
  
for i= 0 to len(x) -1
     
if mid(x,len(x)-i,1)="1" then c2to10=c2to10+2^(i)
  
next
end function

'十六进制代码转换为二进制代码
function c16to2(x)
    i
=0
   
for i=1 to len(trim(x))
      tempstr
= c10to2(cint(int("&h" & mid(x,i,1))))
     
do while len(tempstr)<4
         tempstr
="0" & tempstr
     
loop
      c16to2
=c16to2 & tempstr
  
next
end function

'十进制代码转换为二进制代码
function c10to2(x)
   mysign
=sgn(x)
   x
=abs(x)
   DigS
=1
  
do
     
if x<2^DigS then
       
exit do
     
else
        DigS
=DigS+1
     
end if
  
loop
   tempnum
=x

   i
=0
  
for i=DigS to 1 step-1
     
if tempnum>=2^(i-1) then
         tempnum
=tempnum-2^(i-1)
         c10to2
=c10to2 & "1"
     
else
         c10to2
=c10to2 & "0"
     
end if
  
next
  
if mysign=-1 then c10to2="-" & c10to2
end function
%
>

发表评论】【打印此文】【关闭窗口】【点击数:
★好玩的休闲小游戏★