实现UTF8转换GB2312国标码的asp代码

复制代码 代码如下:

  '个人代码风格注释(变量名中第一个小写字母表表示变量类型)

  '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(“中国人”))