【问题标题】:Storing HTML formatted text in database在数据库中存储 HTML 格式的文本
【发布时间】:2010-05-18 12:17:26
【问题描述】:

我正在建立一个类似于 Craigslist 的网站。我想知道如何在 sql 2008 数据库中存储 html 格式的文本(粗体/斜体/字体大小等)?

按顺序,用户将输入他们的文本,使用字体大小、粗体等设置格式并保存信息。将其存储在数据库中的最有效方法是什么?

【问题讨论】:

    标签: c# asp.net sql-server-2008 craigslist


    【解决方案1】:

    将其保存到 nvarchar(max) 字段。确保使用参数化查询以确保安全。阅读http://www.aspnet101.com/2007/03/parameterized-queries-in-asp-net/

    【讨论】:

    • nvarchar(max) 而不是 varchar(max) 因为这将允许存储任何 unicode 文本,例如中文字符。
    • 没有理由在 sql 字段上对其进行编码 :) 这样会占用大量空间...没有理由并且可能会产生错误或读写...
    【解决方案2】:

    确保只允许一定数量的 HTML 标记,否则您可能会遇到跨脚本注入。

    例如,不允许您的用户输入<script> 或<style> 标签。我建议您在继续之前阅读有关跨脚本注入的更多信息!祝你好运

    【讨论】:

      【解决方案3】:

      我可能只是将广告文字存储为 nvarchar(max) 数据类型

      【讨论】:

        【解决方案4】:

        我会简单地将其填充到 NVARCHAR(MAX) 字段中。

        当然,您可以为此使用参数化查询。

        【讨论】:

          【解决方案5】:

          我会说只使用 NVARCHAR(max) 或 Text 数据类型,而不是 XML 数据类型。

          这将允许轻松访问需要转换 xml 数据类型的内容。

          【讨论】:

          • 好点。不保证输入的 HTML 将是格式正确的 XML
          【解决方案6】:

          如果您使用的是 SQL Server 2008 或更高版本,我会将其放在 nvarchar(MAX) 字段中。如果您使用的是 SQL Server 2005 或更低版本,并且字符数将低于 2000,则可以使用 nvarchar(2000) 类型。如果限制太多,请使用文本类型。

          【讨论】:

            猜你喜欢
            • 2015-04-25
            • 1970-01-01
            • 2023-02-22
            • 2011-06-02
            • 1970-01-01
            • 2011-06-22
            • 1970-01-01
            • 1970-01-01
            • 2013-04-05
            相关资源
            最近更新 更多