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>

我尝试将元标记中的字符集设置为UTF-8and iso-8859-1,但没有帮助,我认为这也与此无关。

尝试单击此链接:http://www.v%c3%a4rnamo.nu,您将得到相同的响应。

还有什么我可以尝试的吗?

4

3 回答 3

1

您可以尝试 punycode,它提供http://www.xn--vrnamo-bua.nu。我使用http://www.charset.org/punycode.php制作了这个,它声称提供 PHP 代码来进行这种转换,如果有帮助的话。

于 2012-12-18T19:52:57.227 回答
0

尝试使用HttpUtility.HtmlDecode(Eval("website"))而不是HtmlEncode

于 2012-12-18T19:57:55.747 回答
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 回答