圆月山庄资源网 Design By www.vgjia.com
今天搞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
标签:
UTF-8,Unicode,Ansi,汉字GB2321几种编码转换程序

圆月山庄资源网 Design By www.vgjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
圆月山庄资源网 Design By www.vgjia.com

稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!

昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。

这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。

而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?