我正在使用HTML代码文本
select prd_desc from prd_mst
prd_desc
------------------------------------------------
<u>hello</u> <font color="#cc0000">dfgfdg</font>
如何将其格式化为HTML格式&#39; hello ...&#39;
我正在为所有那些特殊的HTML字符使用replace函数,或者sqlserver有一些快捷方式,对它有用。
答案 0 :(得分:3)
您可以使用XML数据类型。
如果将值转换为XML,则会为您提供仅包含一个文本元素的XML片段。使用value()
函数提取该值,并且您有一个未授权的字符串。
select cast(p.prd_desc as xml).value('text()[1]', 'nvarchar(max)') as prd_desc
from dbo.prd_mst as p
结果:
prd_desc
-------------------------------------------------
<u>hello</u> <font color="#cc0000">dfgfdg</font>
答案 1 :(得分:1)
试试这个,
create FUNCTION udf_HtmlDecode
(
@UnDecoded as varchar(max)
)
RETURNS varchar(500)
AS
BEGIN
--declare @UnDecoded as varchar(500);
--set @UnDecoded = 'xvfxv <u>cbgdfgd</u> <font color="#cc0000">dfgfdg</font> <b>gdfgdf</b><br>';
DECLARE @Encoded as varchar(max)
--order is important here. Replace the amp first, then the lt and gt.
--otherwise the < will become &lt;
SELECT @Encoded = Replace(
Replace(
Replace(
Replace(@UnDecoded,'&','&'),
'<', '<'),
'>', '>'),
'"','"')
RETURN @Encoded
--select @Encoded
END
然后执行
select dbo.udf_HtmlDecode('<u>hello</u> <font color="#cc0000">dfgfdg</font>')
将返回
<u>hello</u> <font color="#cc0000">dfgfdg</font>