ASP把UTF8转换GB2312国标码的函数


ASP #函数 #utf8 #gb23122012-05-11 23:38
'个人代码风格注释(变量名中第一个小写字母表表示变量类型 一个网 yige.org) 
'i:为Integer型; 
's:为String; 
Function U2UTF8(Byval a_iNum) 
Dim sResult,sUTF8 
Dim iTemp,iHexNum,i 

iHexNum = Trim(a_iNum) 

If iHexNum = “” Then 
Exit Function 
End If 

sResult = “” 

If (iHexNum < 128) Then 
sResult = sResult & iHexNum 
ElseIf (iHexNum < 2048) Then 
sResult = ChrB(&H80; + (iHexNum And &H3F;)) 
iHexNum = iHexNum \ &H40; 
sResult = ChrB(&HC0; + (iHexNum And &H1F;)) & sResult 
ElseIf (iHexNum < 65536) Then 
sResult = ChrB(&H80; + (iHexNum And &H3F;)) 
iHexNum = iHexNum \ &H40; 
sResult = ChrB(&H80; + (iHexNum And &H3F;)) & sResult 
iHexNum = iHexNum \ &H40; 
sResult = ChrB(&HE0; + (iHexNum And &HF;)) & sResult 
End If 

U2UTF8 = sResult 
End Function 

Function GB2UTF(Byval a_sStr) 
Dim sGB,sResult,sTemp 
Dim iLen,iUnicode,iTemp,i 

sGB = Trim(a_sStr) 
iLen = Len(sGB) 
For i = 1 To iLen 
sTemp = Mid(sGB,i,1) 
iTemp = Asc(sTemp) 

If (iTemp>127 OR iTemp<0) Then 
iUnicode = AscW(sTemp) 
If iUnicode<0 Then 
iUnicode = iUnicode + 65536 
End If 
Else 
iUnicode = iTemp 
End If 

sResult = sResult & U2UTF8(iUnicode) 
Next 

GB2UTF = sResult 
End Function 

'调用方法 
Response.BinaryWrite(GB2UTF(“中国人”)) 

相关文章

粤ICP备11097351号-1