我有一系列存储在数据库中的 HTTP 链接,它们有一个命名标记作为链接的一部分(例如http://somecompany.com/products#123332
),它在一个相当大的页面中表示产品 123332。
上面的链接在使用 IE 时可以正常工作,但不适用于 Chrome。字符被#
转换为%23
Chrome 找不到参考。将浏览器的地址字段中的%23
背面更改为正常工作。#
该链接存储在标准 VB 中String
,我尝试#
通过String.Replace()
. 必须有一种正确的方法来正确编码,我似乎无法在网络上找到任何似乎有效的参考资料。
调用的简化示例如下:
Shell(strBrowser & strLink)
wherestrBrowser
包含所有必要的路径和 exe 名称,并且strLink
是一个类似于我上面提到的字符串。也如前所述,它适用于 IE。我怎样才能正确编码呢?
谢谢。
编码
If oFichierAide.LienIntern = 1 Then
strLink = " " + Chr(34) + VarGlobales.EmplacementAppl + oFichierAide.LienFichier + Chr(34)
Else
strLink = " " + Chr(34) + oFichierAide.LienFichier + Chr(34)
End If
Try
regBrowserKey = My.Computer.Registry.ClassesRoot.OpenSubKey("HTTP\shell\open\command", False)
strBrowser = regBrowserKey.GetValue(Nothing).ToString().ToLower().Replace(Chr(34), "")
strBrowser = strBrowser.Substring(0, strBrowser.LastIndexOf(".exe") + 4)
Finally
If regBrowserKey IsNot Nothing Then
regBrowserKey.Close()
End If
End Try
If strBrowser.Length > 0 And strLink.Length > 1 Then
Dim strCall As String = strBrowser + strLink
Shell(strCall, AppWinStyle.NormalFocus, False)
Return True
End If