ASP写的汉字转换UTF-8及UTF-8转GB2312

汉字转换为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 
 Response.Write 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-1then
 tempnum
=tempnum-2^(i-1)
 c10to2
=c10to2 & "1" 
 
else
 c10to2
=c10to2 & "0"
 
end if
 
next
 
if mysign=-1 then c10to2="-" & c10to2
end function

UTF-8编码转GBK

  1. /// <summary> 
  2.  /// 编码的代码 
  3.  /// </summary> 
  4.  /// <param name="value">需要转换的字符串</param> 
  5.  /// <returns>返回转换后的字符串</returns> 
  6.  public string EnCodeCovert(string value) 
  7.  { 
  8.  System.Text.Encoding srcEncode = System.Text.Encoding.GetEncoding("utf-8"); 
  9.  System.Text.Encoding convToEncode = System.Text.Encoding.GetEncoding("GBK"); 
  10.  byte[] bytes = srcEncode.GetBytes(value); 
  11.  System.Text.Encoding.Convert(srcEncode, convToEncode, bytes, 0, bytes.Length); 
  12.  return convToEncode.GetString(bytes); 
  13.  } 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值