加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

ASP汉字转变UTF-8及UTF-8转换GB2312

发布时间:2023-03-27 13:23:34 所属栏目:Asp教程 来源:
导读:汉字转换为UTF-8function chinese2unicode(Str) dim i dim Str_one dim Str_unicode for i=1 to len(Str) Str_one=Mid(Str,i,1) Str_unicode=Str_unicode&chr(38) Str_unicode=Str_unicode&chr(35) Str_unic

汉字转换为UTF-8

function chinese2unicode(Str)

 dim i

 dim Str_one

 dim Str_unicode

 for i=1 to len(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.Write Str_unicode

end function    

UTF-8 To GB2312

function UTF2GB(UTFStr)

   for Dig=1 to len(UTFStr)

       if mid(UTFStr,Dig,1)="%" then

           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

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

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章