我需要制作一个脚本,该脚本需要一些富文本(html文本)并将其转换为普通文本。我想做的是用换行符替换所有<br>
标签。我尝试使用replace函数来做到这一点:
set @rich_text_to_modify = replace(@rich_text_to_modify,'<br>', CHAR(13)+CHAR(10))
标记已删除,但未插入换行符。知道我在做什么错吗?
答案 0 :(得分:12)
问题在于您在SSMS上的设置,而不是数据没有换行符。
转到:Tools -> Options -> Query Results -> SQL Server -> Results to Grid -> Retain CR/LF on copy or Save
并确保已选中该选项。
答案 1 :(得分:3)
您完全确定它不起作用?我用两种不同的结果表示方式对SSMS进行了快速检查。
测试代码:
declare @rich_text_to_modify as nvarchar(200) = N'line1<BR>line2';
select @rich_text_to_modify
set @rich_text_to_modify = REPLACE ( @rich_text_to_modify , N'<BR>' , NCHAR(13)+NCHAR(10))
select @rich_text_to_modify
使用“网格结果(Ctrl + D)”
呈现结果使用“文本结果(Ctrl + T)”
呈现结果如您所见,您的方法运行良好。在Grid中,将结束符转换为空格。也许您用于验证的方法存在问题?