データベースに一連の 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