随笔 - 251  文章 - 504  trackbacks - 0
<2007年11月>
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678

本博客系个人收集材料及学习记录之用,各类“大侠”勿扰!

留言簿(14)

随笔分类

收藏夹

My Favorite Web Sites

名Bloger

非著名Bloger

搜索

  •  

积分与排名

  • 积分 - 200393
  • 排名 - 285

最新评论

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

    对于使用UTF-8的Google搜索引擎来说,使用Google搜索“汉字”会变成http://www.google.com/search?q= %E6%B1%89%E5%AD%97 ,而对于使用GB2312的百度搜索引擎来说,使用百度搜索“汉字”会变成另外的 http://www.baidu.com/s?wd=%BA%BA%D7%D6 。下面的两段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

        UTF8EncodeURI 
= szRet
    End Function

    Function GBKEncodeURI(szInput)
        Dim i As Long
        Dim x() As Byte
        Dim szRet As String

        szRet 
= ""
        x 
= StrConv(szInput, vbFromUnicode)
        For i 
= LBound(x) To UBound(x)
            szRet 
= szRet & "%" & Hex(x(i))
        Next
        GBKEncodeURI 
= szRet
    End Function


转载自月光博客 [ http://www.williamlong.info/ ]
posted on 2007-11-20 00:53 matthew 阅读(781) 评论(0)  编辑  收藏 所属分类: JavaEE

只有注册用户登录后才能发表评论。


网站导航: