当前位置:编程学习 > C#/ASP.NET >>

关于&#开头的HTML实体编码的问题

--------------------编程问答--------------------             string content = Server.HtmlEncode(Server.HtmlDecode("<font size=\"11\">二郎山<font/>"));
            Response.Write(content);

这样不行? --------------------编程问答-------------------- ……  不能先把二郎Decode  再把整个string Encode吗? --------------------编程问答--------------------
引用 1 楼 liuchaolin 的回复:
            string content = Server.HtmlEncode(Server.HtmlDecode("<font size=\"11\">二郎山<font/>"));
            Response.Write(content);

这样不行?

这样不行,我当时就想到了。再encode就又变回去了。这个decode出来的郎字,和直接定义的郎字,unicode码貌似不一样。 --------------------编程问答--------------------
引用 2 楼 Ryan1221 的回复:
……  不能先把二郎Decode  再把整个string Encode吗?

你这个和#1楼的相法一样的,不行的哈。我在.NET和JAVA都测试了。 --------------------编程问答--------------------
引用 4 楼 jiezi316 的回复:
Quote: 引用 2 楼 Ryan1221 的回复:

……  不能先把二郎Decode  再把整个string Encode吗?

你这个和#1楼的相法一样的,不行的哈。我在.NET和JAVA都测试了。

 string content = "<font size=\"11\">" + HttpUtility.HtmlDecode("二郎山") + "<font/>";
            test.InnerText = content;
这样不行吗? --------------------编程问答-------------------- 如果要response.write输出   
string content = HttpUtility.HtmlEncode("<font size=\"11\">") + HttpUtility.HtmlDecode("二郎山") + HttpUtility.HtmlEncode("<font/>"); --------------------编程问答-------------------- 6楼的肯定可以。
但这样的处理方式我个人不是很能接受。因为要对整个内容进行匹配和重新组装。 --------------------编程问答-------------------- replace("<","<").replace(">",">") --------------------编程问答-------------------- 恩,谢谢各位
其实仅仅只是处理web界面上的显示,我肯定是有办法的。
我其实最想达到的是这样的效果。
就是这个被Decode出来的“郎”,能够转换为真正的 “郎”字。(前面说了,这2种“郎”字的unicode码不一样,所以还是有区别的,被Decode出来的“郎”字再次Encode时会变回&#;的形式,而第2种“郎”字,无论Decode还是Encode都不会发生变化)

这样这个字以后再其他地方,无论如何处理都是不会出问题的。 --------------------编程问答-------------------- 用正则把汉字(就是<font ……>和</font>中间的字)提取出来进行Decode替换回去行不? --------------------编程问答-------------------- 可以写个方法尝试replace方法替换掉有针对性的字符 --------------------编程问答-------------------- replace("<","<").replace(">",">") 
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,