使用HttpUtility.Encode选择性编码特殊字符(即μ)

时间:2013-12-03 02:14:12

标签: c# html character-encoding special-characters

我已经读过,在HTML中编码字符串(通过HttpUtility.Encode)是一个好主意,以防止脚本漏洞利用。话虽如此,我有一个字符串,包括特殊字符,如μ,因为我希望字符串无论编码如何都能正确显示,我选择使用HTML字符串文字来做到这一点,这是&#xb5forμ而不是明确地将HTML编码设置为UTF-8。但是,如果我对这个字符串进行编码,那么&被编码为& amp,并且μ字符无法正确显示。因此,我想知道是否有一种方法可以不编码& #xb5,即使我选择编码其余的字符串。

我在下面创建了一个小例子来说明问题:

string text = HttpUtility.HtmlEncode("random string with text and 100 &#xb5s");
string[] lines = { "<html>", "<body>", text, "</body>", "</html>" };
string curFile = @"C:\Test.html";
System.IO.File.WriteAllLines(curFile, lines);

这会在HTML输出中提供“带有文本的随机字符串和100&amp; #xb5s”而不是所需的“带文本和100μs的随机字符串”。

感谢。

0 个答案:

没有答案