您的位置:首页 - 教程 - ASP.NET - 正文
asp.net(C#) 编码解码(HtmlEncode与HtmlEncode)


编码代码:
System.Web.HttpUtility.HtmlEncode("<a href=\"http://hovertree.com/\">何问起</a>");

解码代码:
System.Web.HttpUtility.HtmlDecode("&lt;a href=&quot;http://hovertree.com/&quot;&gt;&#20309;&#38382;&#36215;&lt;/a&gt; ");


效果体验:http://tool.hovertree.com/htmlcode/

本工具还可以实现Unicode解码,例如可以把以下代码解码试试:

&#60;&#97;&#32;&#104;&#114;&#101;&#102;&#61;&#34;&#104;&#116;&#116;&#112;&#58;&#47;&#47;&#104;&#111;&#118;&#101;&#114;&#116;&#114;&#101;&#101;&#46;&#99;&#111;&#109;&#47;&#34;&#62;&#20309;&#38382;&#36215;&#65292;&#25105;&#29233;&#20320;&#65292;&#23601;&#20687;&#32769;&#40736;&#29233;&#22823;&#31859;&#12290;&#60;&#47;&#97;&#62;&#32;



详细实现:

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(" ", " ");
}

}

评论: