如何将HtmlEncode / HtmlDecode转换为C#中的纯文本?

时间:2015-03-20 05:39:55

标签: c# asp.net ckeditor textarea html-encode

我使用了CKEditor ASP.NET版本并调整到我的写作空间。单击btn_Post按钮时,应在此编辑器字段中发布书面文本。我想在C#中获取此文本,因为要保存在数据库中。所以我搜索了如何使用(here)并找到了使用HtmlEncode的方法。这是我发现的代码。

ASP

<div>
  <CKEditor:CKEditorControl ID="CKEditor1" BasePath="/ckeditor/" runat="server">
  </CKEditor:CKEditorControl>
</div>
<div style="margin-top:10px; float:right;">
  <asp:button ID="btn_Post" runat="server" Text="등록하기" CssClass="btn_Post" onclick="btn_Post_Click" />    
</div>

CS

string str = CKEditor1.Text;
string str1 = Server.HtmlEncode(str);
string str2 = Server.HtmlDecode(str);
//str = <p>1234</p>\r\n
//str1 = &lt;p&gt;1234&lt;/p&gt;\r\n
//str2 = <p>1234</p>\r\n 

但问题是,我需要保存没有HTML代码的文本。如您所见,所有变量都显示html代码。如何将此结果更改为纯文本1234

1 个答案:

答案 0 :(得分:0)

您可以使用此方法

public static string RemoveHTMLTags(string content)
        {
            var cleaned = string.Empty;
            try
            {
                string textOnly = string.Empty;
                Regex tagRemove = new Regex(@"<[^>]*(>|$)");
                Regex compressSpaces = new Regex(@"[\s\r\n]+");
                textOnly = tagRemove.Replace(content, string.Empty);
                textOnly = compressSpaces.Replace(textOnly, " ");
                cleaned = textOnly;
            }
            catch
            {
                //A tag is probably not closed. fallback to regex string clean.

            }

            return cleaned;
        }

或使用HTML Agility Pack删除所有HTML标记。