直到现在我才想到HttpUtility.HtmlDecode(" ")
是一个空间。但是下面的代码总是返回false。
string text = " ";
text = HttpUtility.HtmlDecode(text);
string space = " ";
if (String.Compare(space, text) == 0)
return true;
else
return false;
当我尝试Server.HtmlDecode()
为什么会这样?
非常感谢任何帮助
谢谢, Ñ
答案 0 :(得分:15)
HTML实体
不代表空格,它代表一个不间断的空间。
非中断空格的字符代码为160:
string nbspace = "\u00A0";
另外,正如Marc Gravell注意到的那样,你对代码进行了双重编码,所以你需要对它进行两次解码以得到这个字符:
string text = " ";
text = HttpUtility.HtmlDecode(HttpUtility.HtmlDecode(text));
答案 1 :(得分:3)
我正在清理这样的HTML:
var text = WebUtility.HtmlDecode(html)
.Replace("\u00A0", " ") // Replace non breaking space with space.
.Replace(" ", " ") // Shrink multiple spaces into one space.
.Trim();
答案 2 :(得分:2)
 
的HTML并不意味着任何类型的空间。从字面上看,它意味着文本
- 例如,如果您正在编写谈论HTML的HTML,您可能需要包含文本
,您可以通过编写HTML {{ 1}}。
如果你有:
 
然后 将解码为不间断空间。
答案 3 :(得分:0)
你好,几分钟前我遇到了同样的问题。
我是这样解决的:
string text = " ";
text = Server.HtmlDecode(text).Trim;
现在:
text = ""
是正确的(末尾的修饰消除了空格)