替换字符串中的字符以适合浏览器,C#,来自UTF8编码

时间:2011-09-21 09:52:35

标签: string browser utf-8

我需要将字符å,ä,ö替换为浏览器友好字符。例如ä应该成为%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);

2 个答案:

答案 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也工作,你可以做一个简单的字符串。替换这个字符。