程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> 關於ASP編程 >> UTF-8 Unicode Ansi 漢字GB2321幾種編碼轉換程序

UTF-8 Unicode Ansi 漢字GB2321幾種編碼轉換程序

編輯:關於ASP編程
今天搞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
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved