我需要替换浏览器友好的字符,ä,ö。例如,ä应变为%E4。
我尝试过weirdString = Uri.EscapeUriString(weirdString);但它不能将akaäöo转换为正确的符号。帮帮忙好吗?
编辑:尝试这样做:
ASCIIEncoding ascii = new ASCIIEncoding();
byte[] asciicharacters = Encoding.UTF8.GetBytes("vägen");
byte[] asciiArray = Encoding.Convert(Encoding.UTF8, Encoding.ASCII, asciicharacters);
string finalString = ascii.GetString(asciiArray);
string fixedAddrString = HttpUtility.HtmlEncode(finalString);发布于 2011-09-21 17:58:07
如果您需要在页面上显示字符,而不是URL的一部分,则应使用Server.HtmlEncode。
var encodedString = Server.HtmlEncode(myString); HTML编码可确保文本在浏览器中正确显示,而不会被浏览器解释为
。例如,如果文本字符串包含小于号(<)或大于号(>),浏览器会将这些字符解释为HTML标签的左方括号或右方括号。对字符进行HTML编码后,它们将转换为字符串<和>,这会使浏览器正确地显示小于号和大于号。
更新:
由于您使用的是UTF-8,因此这些字符将转义为UTF-8,而不是ASCII。
在尝试转义字符串之前,需要使用Encoding类将字符串从UTF8转换为ASCII码。也就是说,如果您确实希望出现ASCII值。
参见here。
发布于 2011-09-21 17:56:28
试试HttpUtility.HtmlDecode。如果这也不起作用,你可以为这个字符做一个简单的string.Replace。
https://stackoverflow.com/questions/7497844
复制相似问题