我需要将字符å,ä,ö替换为浏览器友好字符。例如ä应该成为%E4。
我试过weirdString = Uri.EscapeUriString(weirdString); 但它并没有将åäö转换为正确的标志。请帮忙吗?
编辑:试过这个:
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);
答案 0 :(得分:1)
如果您需要在页面上显示字符而不是网址的一部分,则应使用Server.HtmlEncode
。
var encodedString = Server.HtmlEncode(myString);
HTML编码可确保文本在浏览器中正确显示,而不会被浏览器解释为HTML。例如,如果文本字符串包含小于符号(<)或大于符号(>),则浏览器会将这些字符解释为HTML标记的左括号或右括号。当字符是HTML编码时,它们被转换为字符串<和>,这会导致浏览器正确显示小于号和大于号。
更新
由于您使用的是UTF-8,因此这些字符将转义为UTF-8,而不是ASCII。
在尝试转义它们之前,需要使用Encoding
类将字符串从UTF-8转换为ASCII。也就是说,如果你确实希望ASCII值出现。
请参阅here。
答案 1 :(得分:0)
尝试HttpUtility.HtmlDecode。 如果这个doesent也工作,你可以做一个简单的字符串。替换这个字符。