UTF-8 Unicode Ansi 汉字GB2321几种编码转换程序

今天搞sxna,遇到了编码转换的难题,搞了一个多小时,历尽千辛万苦,总算总结了如下的汉字转换为各种UTF-8 Unicode Ansi编码的程序.不敢独享,特此奉献给各位编程爱好者!

--------------------------------------------------------------------------------

符合GOOGLE的UTF编码 

汉字 经过encodeURIComponent变成 %E6%B1%89%E5%AD%97 

%E6%B1%89%E5%AD%97经过decodeURIComponent变成汉字 

用google搜索"汉字":

http://www.google.com/search?hl=zh-CN&q=%E6%B1%89%E5%AD%97

符合BAIDU的UTF-8编码 

汉字 经过 AnsiCode 变为 %BA%BA%D7%D6 

BA%BA%D7%D6 经过 DeCodeAnsi 变为 汉字 

用baidu搜索"汉字":

http://www.baidu.com/baidu?word=%BA%BA%D7%D6

--------------------------------------------------------------------------------

汉字经过chinese2unicode变为汉字

汉字经过UTF2GB变为汉字

--------------------------------------------------------------------------------

test.asp 原程序如下

(下载源程序 http://www.dc9.cn/upload/test.rar)

复制代码 代码如下:

UTF-8 Unicode Ansi 汉字GB2321几种编码转换程序 今天搞sxna,遇到了编码转换的难题,找了一个多小时,历尽千辛万苦,总算总结了如下的汉字转换为各种UTF-8 Unicode Ansi编码的程序.不敢独享,特此奉献给各位编程爱好者! <script language="JAVASCRIPT" runat="server"> var ss; var dd; ss=decodeURIComponent("%E6%B1%89%E5%AD%97"); dd=encodeURIComponent("汉字"); </script> 符合GOOGLE的UTF编码 <p> 汉字 经过encodeURIComponent变成 <%=dd%> </p> <p> %E6%B1%89%E5%AD%97经过decodeURIComponent变成 <%=ss%> </p> <script language="vbscript" runat="server">   Function AnsiCode(vstrIn)     Dim i, strReturn, innerCode, ThisChr     Dim Hight8, Low8     strReturn = ""      For i = 1 To Len(vstrIn)        ThisChr = Mid(vStrIn,i,1)        If Abs(Asc(ThisChr)) < &HFF Then          strReturn = strReturn & ThisChr        Else         innerCode = Asc(ThisChr)         If innerCode < 0 Then           innerCode = innerCode + &H10000         End If         Hight8 = (innerCode And &HFF00) \ &HFF         Low8 = innerCode And &HFF         strReturn = strReturn & "%" & Hex(Hight8) & "%" & Hex(Low8)       End If      Next      AnsiCode = strReturn    End Function   Function DeCodeAnsi(s)     Dim i, sTmp, sResult, sTmp1     sResult = ""     For i=1 To Len(s)       If Mid(s,i,1)="%" Then         sTmp = "&H" & Mid(s,i+1,2)         If isNumeric(sTmp) Then           If CInt(sTmp)=0 Then             i = i + 2           ElseIf CInt(sTmp)>0 And CInt(sTmp)<128 Then             sResult = sResult & Chr(sTmp)             i = i + 2           Else             If Mid(s,i+3,1)="%" Then               sTmp1 = "&H" & Mid(s,i+4,2)               If isNumeric(sTmp1) Then                 sResult = sResult & Chr(CInt(sTmp)*16*16 + CInt(sTmp1))                 i = i + 5               End If             Else               sResult = sResult & Chr(sTmp)               i = i + 2             End If           End If         Else           sResult = sResult & Mid(s,i,1)         End If       Else         sResult = sResult & Mid(s,i,1)       End If     Next     DeCodeAnsi = sResult   End Function </script> 符合BAIDU的UTF-8编码 <p> 汉字 经过 AnsiCode 变为  <%=AnsiCode("汉字")%> </p> <p> %BA%BA%D7%D6 经过 DeCodeAnsi 变为  <%=DeCodeAnsi("%BA%BA%D7%D6 ")%> </p> <% '汉字转换为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    chinese2unicode=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 %> <P>汉字经过chinese2unicode变为 <%=chinese2unicode("汉字")%>(需要察看源代码,浏览器已经直接翻译) </p> <p>汉字经过UTF2GB变为 <%=UTF2GB("汉字")%>(需要察看源代码,浏览器已经直接翻译) 

另外在网上发现了一个不错的编码转换小站

http://www.dheart.net/bmzh/index.php

相关推荐