汉字GB2312和UTF-8的编码转换

2018-09-06 11:01

阅读:503

  在使用Google或者百度进行中文搜索的时候,我们会发现搜索过程中URL地址栏会变成一串格式字符串编码,我们编写程序经常也需要进行中文汉字到这类URL编码的转换,这里介绍两段相关的转换函数。

  对于使用UTF-8的Google搜索引擎来说,使用Google搜索“汉字”会变成,而对于使用GB2312的百度搜索引擎来说,使用百度搜索“汉字”会变成另外的。下面的两段VB代码分别针对UTF-8(UTF8EncodeURI)和GB2312(GBKEncodeURI)进行了编码的转换。

   Private Sub command1_click()
Debug.Print (UTF8EncodeURI(汉字))
Debug.Print (GBKEncodeURI(汉字))
End Sub

  
Function UTF8EncodeURI(szInput)
Dim wch, uch, szRet
Dim x
Dim nAsc, nAsc2, nAsc3

   If szInput = Then
UTF8EncodeURI = szInput
Exit Function
End If

   For x = 1 To Len(szInput)
wch = Mid(szInput, x, 1)
nAsc = AscW(wch)

   If nAsc < 0 Then nAsc = nAsc + 65536

   If (nAsc And HFF80) = 0 Then
szRet = szRet wch
Else
If (nAsc And HF000) = 0 Then
uch = % Hex(((nAsc 2 ^ 6)) Or HC0) Hex(nAsc And H3F Or H80)
szRet = szRet uch
Else
uch = % Hex((nAsc 2 ^ 12) Or HE0) % _
Hex((nAsc 2 ^ 6) And H3F Or H80) % _
Hex(nAsc And H3F Or H80)
szRet = szRet uch
End If
End If
Next


评论


亲,登录后才可以留言!