在SQL Server中存储HTML

在SQL Server中存储HTML,html,sql-server,database-design,Html,Sql Server,Database Design,我应该使用什么数据类型在SQL Server 2008中存储HTML内容 它用于CMS的动态内容。将其放入NVARCHAR(MAX)(或更小)中。 HTML与其他文本没有什么不同。VARCHAR(MAX)如果它都是基于ascii的,比如基本HTML模板 NVARCHAR(MAX)如果HTML可以包含任何内容 NVARCHAR将使您的存储使用量加倍,因为它使用的空间量是VARCHAR的两倍。HTML本身不需要NVARCHAR,只有HTML标记之间的内容可以基于语言等 编辑: 从给出这个答案多年以后

我应该使用什么数据类型在SQL Server 2008中存储HTML内容


它用于CMS的动态内容。

将其放入
NVARCHAR(MAX)
(或更小)中。
HTML与其他文本没有什么不同。

VARCHAR(MAX)
如果它都是基于ascii的,比如基本HTML模板

NVARCHAR(MAX)
如果HTML可以包含任何内容

NVARCHAR将使您的存储使用量加倍,因为它使用的空间量是VARCHAR的两倍。HTML本身不需要NVARCHAR,只有HTML标记之间的内容可以基于语言等

编辑:

从给出这个答案多年以后,如果标签内容之间存在任何差异,我现在几乎总是使用NVARCHAR。Unicode很流行

我只在存储简单的html模板(如标记和占位符)时使用VARCHAR
例如:
[占位符]


根据您的用例进行调用。

我应该使用数据类型在SQL Server 2008中存储HTML内容

如果要存储多语言文本,必须使用Nvarchar(Max)

否则,如果要存储英语文本,请使用VARCHAR(MAX)


与varchar(max)相比,nvarchar(max)包含更多的span字符。

Ah-不。这是一个好问题,但标准HTML将要求“基于语言”的内容编码特殊字符;)对不起,HTML中没有unicode。仅限普通Ascii集。该死,这些年来我一直在VARCHAR中存储HTML…;-)正如我所说,因为HTML只有ascii字符。所有特殊语言字符必须进行编码;)因此,db只看到ASCII。。。。或者它不是HTML;)根据维基百科的文章,HTML标准将文档字符集从ISO-8859-1扩展到了ISO 10646,并断言(插入语)该字符集“…基本上等同于Unicode”。Upvote@KennyEvitt,因此类型必须是
NVarChar
,除非您只存储带有“外部字符编码”或“字符集”,它是ASCII的子集。在后一种情况下,文档中表示的所有字符都将是ASCII字符,因此
VarChar
将是安全的。您能解释一下它为什么依赖于语言吗?它与Unicode有关吗?@KushanRandima:您在说什么?