Default.aspx <%@ Page ValidateRequest="false" Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="test_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>asp.net(C#) 编码解码(HtmlEncode与HtmlEncode)</title> </head> <body> <form id="form1" runat="server"> <div> <asp:Label ID="lblShow" runat="server" Text="Label"></asp:Label> <asp:TextBox ID="txtInput" runat="server" Height="194px" TextMode="MultiLine" Width="305px"></asp:TextBox> <asp:Button ID="btnOk" runat="server" Text="提交" OnClick="btnOk_Click" /></div> </form> </body> </html>
Default.aspx.cs using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; /***********************编码研究*********************** * 1.默认情况是不允许用户在TextBox中输入html标签的, * 如果需要输入,设置Page的ValidateRequest="false" * 2.可以把输入的html标签,比如<input>直接存放在数据库中, * 只是在输出的时候编码,防止原样输出打乱页面布局.或者呈现html元素. *****************************************************/ public partial class test_Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void btnOk_Click(object sender, EventArgs e) { lblShow.Text = htmlEncode(txtInput.Text); } /// <summary> /// 对输入的html编码,同时对回车与空格进行转换 /// </summary> /// <param name="str"></param> /// <returns></returns> public string htmlEncode(string str) { return Server.HtmlEncode(str).Replace("\n", "<br/>").Replace(" ", " "); } }