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

博客提供了汉字与编码转换的相关函数。包含将汉字转换为UTF - 8的函数,如trans和chinese2unicode;还有将UTF - 8转换为GB2312的函数,如UTF2GB等,同时给出了二进制、十六进制、十进制相互转换的辅助函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1None.gif汉字转换为UTF-8
  2ExpandedBlockStart.gifContractedBlock.gifFunction trans()Function trans(str)
  3InBlock.gif    dim strlen
  4InBlock.gif    dim conertstr
  5InBlock.gif    if IsNull(strthen
  6InBlock.gif        Trans=str
  7InBlock.gif    else
  8InBlock.gif        position=1
  9InBlock.gif        strlen=Len(str)
 10InBlock.gif        dim j
 11InBlock.gif        for j=1 to strlen
 12InBlock.gif            convertstr=convertstr & "&#x" & Hex(AscW(Mid(str,j,1))) & ";"
 13InBlock.gif        next
 14InBlock.gif        Trans=convertstr
 15InBlock.gif    end if
 16ExpandedBlockEnd.gifend Function
 
 17None.gif
 18ExpandedBlockStart.gifContractedBlock.gifFunction chinese2unicode()function chinese2unicode(Str
 19InBlock.gif  dim i 
 20InBlock.gif  dim Str_one 
 21InBlock.gif  dim Str_unicode 
 22InBlock.gif  for i=1 to len(Str
 23InBlock.gif    Str_one=Mid(Str,i,1
 24InBlock.gif    Str_unicode=Str_unicode&chr(38
 25InBlock.gif    Str_unicode=Str_unicode&chr(35
 26InBlock.gif    Str_unicode=Str_unicode&chr(120
 27InBlock.gif    Str_unicode=Str_unicode& Hex(ascw(Str_one)) 
 28InBlock.gif    Str_unicode=Str_unicode&chr(59
 29InBlock.gif  next 
 30InBlock.gif  Response.Write Str_unicode 
 31ExpandedBlockEnd.gifend function
    
 32None.gif
 33None.gifUTF-8 To GB2312
 34None.gif
 35ExpandedBlockStart.gifContractedBlock.gifFunction UTF2GB()function UTF2GB(UTFStr)
 36InBlock.gif    for Dig=1 to len(UTFStr)
 37InBlock.gif        if mid(UTFStr,Dig,1)="%" then
 38InBlock.gif            if len(UTFStr) >= Dig+8 then
 39InBlock.gif                GBStr=GBStr & ConvChinese(mid(UTFStr,Dig,9))
 40InBlock.gif                Dig=Dig+8
 41InBlock.gif            else
 42InBlock.gif                GBStr=GBStr & mid(UTFStr,Dig,1)
 43InBlock.gif            end if
 44InBlock.gif        else
 45InBlock.gif            GBStr=GBStr & mid(UTFStr,Dig,1)
 46InBlock.gif        end if
 47InBlock.gif    next
 48InBlock.gif    UTF2GB=GBStr
 49ExpandedBlockEnd.gifend function
 
 50None.gif
 51None.gif
 52ExpandedBlockStart.gifContractedBlock.gifFunction ConvChinese()function ConvChinese(x) 
 53InBlock.gif    A=split(mid(x,2),"%")
 54InBlock.gif    i=0
 55InBlock.gif    j=0
 56InBlock.gif    
 57InBlock.gif    for i=0 to ubound(A) 
 58InBlock.gif        A(i)=c16to2(A(i))
 59InBlock.gif    next
 60InBlock.gif        
 61InBlock.gif    for i=0 to ubound(A)-1
 62InBlock.gif        DigS=instr(A(i),"0")
 63InBlock.gif        Unicode=""
 64InBlock.gif        for j=1 to DigS-1
 65InBlock.gif            if j=1 then 
 66InBlock.gif                A(i)=right(A(i),len(A(i))-DigS)
 67InBlock.gif                Unicode=Unicode & A(i)
 68InBlock.gif            else
 69InBlock.gif                i=i+1
 70InBlock.gif                A(i)=right(A(i),len(A(i))-2)
 71InBlock.gif                Unicode=Unicode & A(i) 
 72InBlock.gif            end if 
 73InBlock.gif        next
 74InBlock.gif        
 75InBlock.gif        if len(c2to16(Unicode))=4 then
 76InBlock.gif            ConvChinese=ConvChinese & chrw(int("&H" & c2to16(Unicode)))
 77InBlock.gif        else
 78InBlock.gif            ConvChinese=ConvChinese & chr(int("&H" & c2to16(Unicode)))
 79InBlock.gif        end if
 80InBlock.gif    next
 81ExpandedBlockEnd.gifend function

 82None.gif
 83ExpandedBlockStart.gifContractedBlock.gifFunction c2to16()function c2to16(x)
 84InBlock.gif    i=1
 85InBlock.gif    for i=1 to len(x)  step 4 
 86InBlock.gif        c2to16=c2to16 & hex(c2to10(mid(x,i,4))) 
 87InBlock.gif    next
 88ExpandedBlockEnd.gifend function
 
 89None.gif    
 90ExpandedBlockStart.gifContractedBlock.gifFunction c2to10()function c2to10(x)
 91InBlock.gif    c2to10=0
 92InBlock.gif    if x="0" then exit function
 93InBlock.gif    i=0
 94InBlock.gif    for i= 0 to len(x) -1
 95InBlock.gif        if mid(x,len(x)-i,1)="1" then c2to10=c2to10+2^(i)
 96InBlock.gif    next 
 97ExpandedBlockEnd.gifend function

 98None.gif
 99ExpandedBlockStart.gifContractedBlock.gifFunction c16to2()function c16to2(x)
100InBlock.gif    i=0
101InBlock.gif    for i=1 to len(trim(x)) 
102InBlock.gif        tempstr= c10to2(cint(int("&h" & mid(x,i,1))))
103InBlock.gif        do while len(tempstr)<4
104InBlock.gif        tempstr="0" & tempstr
105InBlock.gif        loop
106InBlock.gif        c16to2=c16to2 & tempstr
107InBlock.gif    next
108ExpandedBlockEnd.gifend function

109None.gif
110ExpandedBlockStart.gifContractedBlock.gifFunction c10to2()function c10to2(x)
111InBlock.gif    mysign=sgn(x)
112InBlock.gif    x=abs(x)
113InBlock.gif    DigS=1
114InBlock.gif    do 
115InBlock.gif        if x<2^DigS then
116InBlock.gif            exit do
117InBlock.gif        else
118InBlock.gif            DigS=DigS+1
119InBlock.gif        end if
120InBlock.gif    loop
121InBlock.gif    tempnum=x
122InBlock.gif    
123InBlock.gif    i=0
124InBlock.gif    for i=DigS to 1 step-1
125InBlock.gif        if tempnum>=2^(i-1then
126InBlock.gif            tempnum=tempnum-2^(i-1)
127InBlock.gif            c10to2=c10to2 & "1"   
128InBlock.gif        else
129InBlock.gif            c10to2=c10to2 & "0"
130InBlock.gif        end if
131InBlock.gif    next
132InBlock.gif    if mysign=-1 then c10to2="-" & c10to2
133ExpandedBlockEnd.gifend function

134None.gif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值