HTMLencode HTMLdecode
我有一个文本区域,我想将用户输入的文本存储在数据库中,其中html格式如段落,编号列表。 我正在使用HTMLencode和HTMLdecode。
我的代码示例如下:
string str1 = Server.HtmlEncode(TextBox1.Text); Response.Write(Server.HtmlDecode(str1));
如果用户输入带有2个段落的文本,则str1在段落之间显示字符 r n r n。 但是当它将它写入屏幕时,只需在第1段附加第2段。 虽然我正在解码它,为什么不打印2段?
简单的解决方案是:
string str1 = Server.HtmlEncode(TextBox1.Text).Replace("rn", "
");
这假设您只关心获得正确的
标签。 如果你想要一个真正的格式化程序,你需要一个像Aaronaught建议的库。
这不是HtmlEncode
和HtmlDecode
所做的。 差远了。
这些方法用于“转义”HTML。 <
变成<
, >
变成>
, 等等。 您可以使用这些来逃避用户输入的输入,以避免跨站点脚本攻击和相关问题。
如果您希望能够进行纯文本输入并将其转换为HTML,请考虑像Markdown这样的格式化工具(我相信Stack Overflow使用MarkdownSharp )。
如果您想要的只是换行符,则可以使用text.Replace("rn", "
,但处理更复杂的结构(如有序列表)很困难,并且已有现有工具可以处理它。
")
HTML无法将 r n识别为换行符。 将它们转换为“p”或“br”标签。
上述就是C#学习教程:HTMLencode HTMLdecode分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注---计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1017043.html