【问题标题】:How do I store text in database with line breaks or paragraph如何使用换行符或段落将文本存储在数据库中
【发布时间】:2013-12-19 14:10:04
【问题描述】:

在我的应用程序中,我有应用程序条款。在我用 HTML 把它放在前端之前。

但现在我需要将此文本放入数据库中名为 AppTerms 的列中,该列位于名为 App 的表中。

我在 stackoverflow 中引用了this 链接,然后像这样:

UPDATE [AppsDatabase].[dbo].[App]
SET AppTerms = 'This App has no minimum term.' + CHAR(13) +
'This App is built and is supported through the standard way of using the company online support.' + CHAR(13) +
'Incorrectly formatted data will not be formatted but may be charged for.'
 WHERE AppID = 8
 GO

但我在这里没有换行符。还有谁能告诉我如何在每一行中加上要点?

【问题讨论】:

  • 你能粘贴这个命令的输出吗? DECLARE @Terms NVARCHAR(MAX) = (SELECT AppTerms FROM AppsDatabase.dbo.App WHERE AppID = 8;); PRINT @Terms;
  • @IainElder 当我使用你的命令时,我可以在输出窗口中看到用换行符格式化的文本。所以我认为我在前端做错了。当我调用它时,文本没有格式化。

标签: sql-server database tsql


【解决方案1】:

如果您要显示 HTML,则需要存储 </br> 而不是 CHAR(13)。

在 HTML 中显示此文本将产生正确的显示。此外,您可以在<p>...</p> 中换行。

有关项目符号列表,请查看http://www2.gol.com/users/billp/articlehtml/bullet.html

这是假设您将文本取出并以 HTML 显示。

【讨论】:

  • 但如果我使用,它会显示不正确的语法错误。我尝试这样使用:+ +
  • 需要成为文本的一部分 - HTML 会将其转换为换行符。无法在 SQL 中显示带有换行符的文本 - 这需要添加被 HTML 忽略的 CHAR(13)。
【解决方案2】:

它应该工作。在 HTML 中,您可以使用 </br> 标记。

【讨论】:

  • 我在显示 db-tag 时遇到了问题,但现在应该可以看到建议的答案。
  • 我指的是“它应该可以工作。你的列是什么数据类型?”这不属于答案。
【解决方案3】:

您希望应用程序使用换行符呈现 HTML,但您存储的是纯文本。

您需要存储 HTML。使用<br> 元素对换行符进行编码。

试试这个:

UPDATE [AppsDatabase].[dbo].[App]
SET AppTerms = 'This App has no minimum term.<br>' + CHAR(13) +
'This App is built and is supported through the standard way of using the company online support.<br>' + CHAR(13) +
'Incorrectly formatted data will not be formatted but may be charged for.'
 WHERE AppID = 8;

如果您想对要点进行编码,请查看 &lt;ul&gt;&lt;li&gt; 元素。

这是一个数据格式问题,而不是 SQL Server 问题。如果您尝试将数据存储在文件中而不是表中,也会遇到同样的问题。

W3C specification for HTML Text 解释了 HTML 中空白是如何处理的:

在 HTML 中,只有以下字符被定义为空格 字符:

  • ASCII 空格 (&amp;#x0020;)
  • ASCII 选项卡 (&amp;#x0009;)
  • ASCII 换页 (&amp;#x000C;)
  • 零宽度空间 (&amp;#x200B;)

换行符也是空白字符。

[...] 用户代理在生成输出字间距时应折叠输入空白序列。

换行符相当于空格,输出中多个空白字符折叠成一个空格。

【讨论】:

    【解决方案4】:

    可能为时已晚,但是,我遇到了同样的问题... 我想出的解决方案是将段落(或列表...或其他)存储在单独的子表中,并在服务器编程语言级别处理格式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-05
      • 1970-01-01
      • 1970-01-01
      • 2015-06-25
      • 1970-01-01
      • 2018-10-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多