vb将字符串转换成16进制可供浏览器网址访问

175 阅读1分钟

工作中无意看到一个网站搜索的关键字加密后进入不是很长的那种,比较短,所以不像utf8编码,尝试了几种都不是,刚要询问别人时候忽然灵光一现,1个汉字对应4个字母,有点熟悉啊,好像是16进制编码?一测试果然是16进制的,于是编写了个函数,以供后来者方便直接使用。

图片.png

www.baidu.com/baidu?wd=%E…
www.baidu.com/baidu?wd=%c… 上面第一个为utf8编码,第二个为16进制编码。

'将中文编码为16进制的,用于网页浏览器地址
Public Function UnicodeToHex(ByVal strKey As String) As String
    Dim i%, strChar$, strResult$, strTmp$
    For i = 1 To Len(strKey)
        strChar = Mid(strKey, i, 1)
        If Asc(strChar) < 0 Then
            strTmp = LCase(Hex(Asc(strChar)))
            strResult = strResult & "%" & Left(strTmp, 2) & "%" & Right(strTmp, 2)
        Else
            strResult = strResult & strChar
        End If
    Next
    UnicodeToHex = strResult
End Function

用上述代码把中文关键加密下即可。