0

特殊文字を含む URL に問題があります。私が使用する場合、レンダリングされた HTMLNavigateUrl='Eval("website")'は次のとおりです。

<a href="http://www.v%c3%a4rnamo.nu">www.värnamo.nu</a>

このようにエンコードしようとすると、NavigateUrl='<%# HttpUtility.HtmlEncode(Eval("website")) %>'この出力が得られますが、これも機能しません。

<a href="http://www.v&/"288;rnamo.nu">www.värnamo.nu</a>

メタタグの charset をUTF-8andiso-8859-1に設定しようとしましたが、役に立ちませんでした。それも関係ないと思います。

次のリンクをクリックしてみてください: http://www.v%c3%a4rnamo.nuと同じ応答が得られます。

他に試せることはありますか?

4

3 に答える 3

1

http://www.xn--vrnamo-bua.nuを提供する punycode を試すことができます。http://www.charset.org/punycode.phpを使用してこれを作成しました。これは、この変換を行うための PHP コードを提供すると主張しています。

于 2012-12-18T19:52:57.227 に答える
0

私は実際にこれを機能させました。このLINKのコードを使用しました

私のaspxページでは、NavigateUrlプロパティでこれを使用しています:

NavigateUrl='<%# idnMapping(Convert.ToString(Eval("website"))) %>'

関数を呼び出すもの:

public static string idnMapping(string text) {
    System.Globalization.IdnMapping idn = new System.Globalization.IdnMapping();
    return idn.GetAscii(text);
}

今、私が見るhtmlを見ると

<a href="http://xn--vrnamo-bua.nu">www.värnamo.nu</a>

このリンクをクリックすると、ページが正しく開きます。

于 2012-12-18T22:16:50.453 に答える
0

HttpUtility.HtmlDecode(Eval("website"))代わりに使用してみてくださいHtmlEncode

于 2012-12-18T19:57:55.747 に答える