私は現在、ファイルパスを(動的に)HyperLink
コントロールのNavigateUrl
プロパティに渡すためにファイルパスを処理する方法を考え出しています。ASP.NETのHyperLink.NavigateUrlで特殊文字を処理するには?
のルートにあるjäynä.txt
というファイルを参照しようとしています。
"file:///C:/jäynä.txt"
の結果をfile:///C:/jäynä.txt
へのリンクに、HttpUtility.UrlPathEncode("file:///C:/jäynä.txt")
のようにします。 ä
** S ** %E4
と、文字列"file:///C:/j%E4yn%E4.txt"
を与えるの交換
は、file:///C:/jäynä.txt
に取り組んリンクを与えませんが、私はそれを自分自身を定義せずに交換を行うための方法を見つけることができませんでした。例えば、Replace("ä", "%E4")
である。
ファイルパス文字列を自動的に処理して、HyperLink
が正しく表示されるようにする方法はありますか?
追加注:
デバッグがHyperLink
は、少なくとも文字列"file:///C:/jäynä.txt"
そのままを保存し、何とかそれを狂わせることを示しているため、ページがレンダリングされている文字エンコーディングをspesifyingことにより、この問題を回避するための方法があるかもしれませんレンダリングの時間の周り。
しかし、これが唯一のNavigateUrl
ため、他のコンポーネントのレンダリングにおける場合と同様になるようだHyperLink
さんText
-property ä
変わらない文字をレンダリングするすべての非常に能力があります。
いいえ、私はそれがブラウザであると信じていません。私はちょうど最初のケースでは、ページのソースをチェックし、リンクhrefはhref = "file:/// C:/j%c3%a4yn%c3%a4.txt"であり、サーバーがどのようにレンダリングしたかを示しています最初の場所。あなたは解決策が厳しいかもしれません。 – vipirtti
BrowserCapsなどの何かに基づいて間接的にブラウザになる場合もあります。それにかかわらず、NavigateUrlに指定する値は事前にクリーニングする必要があります。これは、UrlEncodeで自動的に何もしないため、文書化されています。 –