主页 > 知识库 > UTF-8 Unicode Ansi 汉字GB2321几种编码转换程序

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

热门标签:服务器配置 科大讯飞语音识别系统 阿里云 团购网站 Linux服务器 银行业务 Mysql连接数设置 电子围栏
今天搞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-CNq=%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变为#x6C49;#x5B57;

#x6C49;#x5B57;经过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_unicodechr(38) 
    Str_unicode=Str_unicodechr(35) 
    Str_unicode=Str_unicodechr(120) 
    Str_unicode=Str_unicode Hex(ascw(Str_one)) 
    Str_unicode=Str_unicodechr(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 x2^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
您可能感兴趣的文章:
  • utf8和unicode编码究竟是什么关系?有何区别?
  • Encode/DecodeANSIlt;-gt;UTF8两个编码工具 下载
  • 浅析c++ 宏 #val 在unicode下的使用
  • 浅析内存对齐与ANSI C中struct型数据的内存布局
  • java实现十六进制字符unicode与中英文转换示例
  • Mysql中的排序规则utf8_unicode_ci、utf8_general_ci的区别总结
  • Unicode编码大揭秘
  • VC中实现GB2312、BIG5、Unicode编码转换的方法
  • C语言中字符和字符串处理(ANSI字符和Unicode字符)

标签:衢州 大理 广元 萍乡 枣庄 蚌埠 江苏 衡水

巨人网络通讯声明:本文标题《UTF-8 Unicode Ansi 汉字GB2321几种编码转换程序》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266