如何使用换行符或段落在数据库中存储文本

时间:2013-12-03 13:28:52

标签: sql-server database tsql

在我的申请中,我有应用条款。之前我曾经把它放在HTML的前端。

但是现在我需要将这个文本放在数据库中名为 App 的名为 AppTerms 的列中。

我在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

但我不是在这里换线。并且有人可以告诉我如何在每一行中放置子弹点?

4 个答案:

答案 0 :(得分:4)

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

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

中打包一个段落

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

您希望应用程序使用换行符呈现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;

如果您想对子弹点进行编码,请查看<ul><li>元素。

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

W3C specification for HTML Text解释了HTML中如何处理空格:

  

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

     
      
  • ASCII空间(&#x0020;
  •   
  • ASCII标签(&#x0009;
  •   
  • ASCII换页(&#x000C;
  •   
  • 零宽度空间(&#x200B;
  •   
     

换行符也是空白字符。

     

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

换行符等效于空格,多个空格字符会折叠到输出中的单个空格。