UTF-8 Unicode Ansi 汉字GB2321几种编码转换程序
UTF-8 Unicode Ansi 汉字GB2321几种编码转换程序
发布时间:2016-12-29 来源:查字典编辑
摘要:今天搞sxna,遇到了编码转换的难题,搞了一个多小时,历尽千辛万苦,总算总结了如下的汉字转换为各种UTF-8UnicodeAnsi编码的程序...

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

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

符合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-8UnicodeAnsi汉字GB2321几种编码转换程序

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

<scriptlanguage="JAVASCRIPT"runat="server">

varss;

vardd;

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>

<scriptlanguage="vbscript"runat="server">

FunctionAnsiCode(vstrIn)

Dimi,strReturn,innerCode,ThisChr

DimHight8,Low8

strReturn=""

Fori=1ToLen(vstrIn)

ThisChr=Mid(vStrIn,i,1)

IfAbs(Asc(ThisChr))<&HFFThen

strReturn=strReturn&ThisChr

Else

innerCode=Asc(ThisChr)

IfinnerCode<0Then

innerCode=innerCode+&H10000

EndIf

Hight8=(innerCodeAnd&HFF00)&HFF

Low8=innerCodeAnd&HFF

strReturn=strReturn&"%"&Hex(Hight8)&"%"&Hex(Low8)

EndIf

Next

AnsiCode=strReturn

EndFunction

FunctionDeCodeAnsi(s)

Dimi,sTmp,sResult,sTmp1

sResult=""

Fori=1ToLen(s)

IfMid(s,i,1)="%"Then

sTmp="&H"&Mid(s,i+1,2)

IfisNumeric(sTmp)Then

IfCInt(sTmp)=0Then

i=i+2

ElseIfCInt(sTmp)>0AndCInt(sTmp)<128Then

sResult=sResult&Chr(sTmp)

i=i+2

Else

IfMid(s,i+3,1)="%"Then

sTmp1="&H"&Mid(s,i+4,2)

IfisNumeric(sTmp1)Then

sResult=sResult&Chr(CInt(sTmp)*16*16+CInt(sTmp1))

i=i+5

EndIf

Else

sResult=sResult&Chr(sTmp)

i=i+2

EndIf

EndIf

Else

sResult=sResult&Mid(s,i,1)

EndIf

Else

sResult=sResult&Mid(s,i,1)

EndIf

Next

DeCodeAnsi=sResult

EndFunction

</script>

符合BAIDU的UTF-8编码

<p>

汉字经过AnsiCode变为

<%=AnsiCode("汉字")%>

</p>

<p>

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

<%=DeCodeAnsi("%BA%BA%D7%D6")%>

</p>

<%

'汉字转换为UTF-8

functionchinese2unicode(Str)

dimi

dimStr_one

dimStr_unicode

fori=1tolen(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

endfunction

'UTF-8ToGB2312

functionUTF2GB(UTFStr)

forDig=1tolen(UTFStr)

ifmid(UTFStr,Dig,1)="%"then

iflen(UTFStr)>=Dig+8then

GBStr=GBStr&ConvChinese(mid(UTFStr,Dig,9))

Dig=Dig+8

else

GBStr=GBStr&mid(UTFStr,Dig,1)

endif

else

GBStr=GBStr&mid(UTFStr,Dig,1)

endif

next

UTF2GB=GBStr

endfunction

functionConvChinese(x)

A=split(mid(x,2),"%")

i=0

j=0

fori=0toubound(A)

A(i)=c16to2(A(i))

next

fori=0toubound(A)-1

DigS=instr(A(i),"0")

Unicode=""

forj=1toDigS-1

ifj=1then

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)

endif

next

iflen(c2to16(Unicode))=4then

ConvChinese=ConvChinese&chrw(int("&H"&c2to16(Unicode)))

else

ConvChinese=ConvChinese&chr(int("&H"&c2to16(Unicode)))

endif

next

endfunction

functionc2to16(x)

i=1

fori=1tolen(x)step4

c2to16=c2to16&hex(c2to10(mid(x,i,4)))

next

endfunction

functionc2to10(x)

c2to10=0

ifx="0"thenexitfunction

i=0

fori=0tolen(x)-1

ifmid(x,len(x)-i,1)="1"thenc2to10=c2to10+2^(i)

next

endfunction

functionc16to2(x)

i=0

fori=1tolen(trim(x))

tempstr=c10to2(cint(int("&h"&mid(x,i,1))))

dowhilelen(tempstr)<4

tempstr="0"&tempstr

loop

c16to2=c16to2&tempstr

next

endfunction

functionc10to2(x)

mysign=sgn(x)

x=abs(x)

DigS=1

do

ifx<2^DigSthen

exitdo

else

DigS=DigS+1

endif

loop

tempnum=x

i=0

fori=DigSto1step-1

iftempnum>=2^(i-1)then

tempnum=tempnum-2^(i-1)

c10to2=c10to2&"1"

else

c10to2=c10to2&"0"

endif

next

ifmysign=-1thenc10to2="-"&c10to2

endfunction

%>

<P>汉字经过chinese2unicode变为

<%=chinese2unicode("汉字")%>(需要察看源代码,浏览器已经直接翻译)

</p>

<p>汉字经过UTF2GB变为

<%=UTF2GB("汉字")%>(需要察看源代码,浏览器已经直接翻译)

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

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

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新ASP教程学习
热门ASP教程学习
编程开发子分类