UTF-8 Unicode Ansi 汉字GB2321几种编码转换程序
2018-09-06 11:21
今天搞sxna,遇到了编码转换的难题,搞了一个多小时,历尽千辛万苦,总算总结了如下的汉字转换为各种UTF-8UnicodeAnsi编码的程序.不敢独享,特此奉献给各位编程爱好者!
--------------------------------------------------------------------------------
符合GOOGLE的UTF编码
汉字经过encodeURIComponent变成%E6%B1%89%E5%AD%97
%E6%B1%89%E5%AD%97经过decodeURIComponent变成汉字
用google搜索汉字:
符合BAIDU的UTF-8编码
汉字经过AnsiCode变为%BA%BA%D7%D6
BA%BA%D7%D6经过DeCodeAnsi变为汉字
用baidu搜索汉字:
--------------------------------------------------------------------------------
汉字经过chinese2unicode变为汉字
汉字经过UTF2GB变为汉字
--------------------------------------------------------------------------------
test.asp原程序如下
(下载源程序)
复制代码 代码如下:
UTF-8UnicodeAnsi汉字GB2321几种编码转换程序
今天搞sxna,遇到了编码转换的难题,找了一个多小时,历尽千辛万苦,总算总结了如下的汉字转换为各种UTF-8UnicodeAnsi编码的程序.不敢独享,特此奉献给各位编程爱好者!
<scriptlanguage=JAVASCRIPTrunat=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=vbscriptrunat=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=0thenexitfunction
i=0
fori=0tolen(x)-1
ifmid(x,len(x)-i,1)=1thenc2to10=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(汉字)%>(需要察看源代码,浏览器已经直接翻译)
另外在网上发现了一个不错的编码转换小站
上一篇:使用函数自动生成n层目录
下一篇:趣味访客计数器设计两则
文章标题:UTF-8 Unicode Ansi 汉字GB2321几种编码转换程序
文章链接:http://soscw.com/essay/9286.html