2

私は現在、HyperLinkコントロールのNavigateUrlプロパティに(動的に)渡されるファイルパスを処理する方法を理解するのに苦労しています。

jäynä.txtのルートにあるという名前のファイルを参照しようとしているとしましょうC:。と同様に、結果を へのリンクに
渡します。"file:///C:/jäynä.txt"file:///C:/jäynä.txtHttpUtility.UrlPathEncode("file:///C:/jäynä.txt")

ä** を **%E4に置き換えると、文字列"file:///C:/j%E4yn%E4.txt"が得られ、 への有効なリンクが得file:///C:/jäynä.txtられますが、自分で定義せずに置換を行う方法を見つけることができませんでした。Replace("ä", "%E4")たとえば、

ファイルパス文字列を自動的に処理してHyperLink、文字列で置き換える文字を手動でリストせずに正しく表示する方法はありますか?

追加の注意:
ページがレンダリングされる文字エンコーディングを指定することで、これを回避する方法があるかもしれません。これは、デバッグにより、HyperLink少なくとも文字列"file:///C:/jäynä.txt"が変更されずに保存されていることが示されるためですが、レンダリング時に何らかの形で文字列が壊れてしまうためです。
ただし、これは のレンダリングの場合にのみ当てはまります。NavigateUrl他のコンポーネントとHyperLinkTextプロパティはすべて、キャラクタをä変更せずにレンダリングできるからです。

4

4 に答える 4

4

ハイパーリンクのNavigateUrlプロパティは、URLにUnicode文字をエンコードします。

代わりに、ハイパーリンクのhref属性プロパティを次のように設定できます。

hyperlink1.Attribute("href") = "file:///C:/jäynä.txt"
于 2012-05-21T18:00:46.667 に答える
1

HyperLink コントロールを使用しないでください。代わりに HtmlAnchor コントロールを使用してください。それはあなたの問題を解決します。マイクロソフトがこのように設計した理由がわかりません。

于 2010-05-23T11:44:45.827 に答える
1

これは、ブラウザーがパスを解釈し始める方法によるもので、通常、個人はページの URL にそのような文字を使用することを避けます。

あなたの場合、HttpUtility および/または NavigateUrl プロパティの動作を変更する方法を認識していないため、最善のシナリオを思いついたと思います。少なくとも、そのためのカスタム コントロールを作成しなければなりません。

于 2009-03-09T13:40:11.940 に答える
0

ありがとうございました!「属性」を使用した投稿で問題が解決しました。私の場合はそうでした

HyperLink6.Attributes["href"] = "http://høgstedt.danquah.dk/";

URL に特殊なデンマーク文字を使用するという問題は、多くのプログラマーを悩ませてきたようです。検索には、非常に複雑な方法がいくつかあります。これはシンプルで、簡単に機能します。それでは、あらためて、よろしくお願いいたします

于 2012-12-19T09:10:02.807 に答える