我遇到包含特殊字符的网址问题。如果我使用NavigateUrl='Eval("website")'
,呈现的HTML就是:
<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-8
和iso-8859-1
,但它没有帮助,我也不认为它与此有关。
尝试点击此链接:http://www.v%c3%a4rnamo.nu,您将得到相同的回复。
我还能尝试其他什么吗?
答案 0 :(得分:1)
你可以试试punycode,它会给http://www.xn--vrnamo-bua.nu。我使用http://www.charset.org/punycode.php创建了这个,声称提供PHP代码来执行此转换,如果有帮助的话。
答案 1 :(得分:0)
尝试使用HttpUtility.HtmlDecode(Eval("website"))
代替HtmlEncode
答案 2 :(得分: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>
点击此链接将正确打开页面。