Vb.net Google Chrome命令行链接,带有vb字符串中的命名标记

Vb.net Google Chrome命令行链接,带有vb字符串中的命名标记,vb.net,google-chrome,character-encoding,Vb.net,Google Chrome,Character Encoding,我在数据库中存储了一系列HTTP链接,其中有一个命名标记作为链接的一部分(例如http://somecompany.com/products#123332),它在一个相当大的页面中表示产品123332 上面的链接在使用IE时可以正常工作,但不适用于Chrome。字符被转换为%23,Chrome无法找到引用。在浏览器的地址字段中将%23更改回可以正常工作 链接存储在标准的VB字符串中,我尝试通过String.Replace()用不同的值替换。一定有正确的编码方法,我只是在网上找不到任何有效的参考资

我在数据库中存储了一系列HTTP链接,其中有一个命名标记作为链接的一部分(例如
http://somecompany.com/products#123332
),它在一个相当大的页面中表示产品123332

上面的链接在使用IE时可以正常工作,但不适用于Chrome。
字符被转换为
%23
,Chrome无法找到引用。在浏览器的地址字段中将
%23
更改回
可以正常工作

链接存储在标准的VB
字符串中,我尝试通过
String.Replace()
用不同的值替换
。一定有正确的编码方法,我只是在网上找不到任何有效的参考资料

调用的简化示例如下:

Shell(strBrowser & strLink) 
其中,
strBrowser
包含所有必需的路径和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

通过执行以下操作,您可以通过Visual Basic打开任何chrome窗口,指向存储有字符串变量的任何URL:

Dim appData As String = GetFolderPath(SpecialFolder.ApplicationData)
Dim chromelocation = appdata + "\Local\Google\Chrome\Application\chrome.exe"
process.start(chromelocation + strLink)

然后Chrome应该打开,它的地址应该是strLink的内容。

哪个版本的Chrome?当我键入
C:/path/to/chrome.exe时http://somecompany.com/products#123332
在cmd.exe中,地址栏保留“#”。您能告诉我们设置strBrowser和strLink变量的代码吗?我这里有19.0.1084.52版,但不确定客户端有什么版本。