私は現在、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他のコンポーネントとHyperLinkのTextプロパティはすべて、キャラクタをä変更せずにレンダリングできるからです。