CREATE FUNCTION [dbo].[strings_encodeHTML](@inputText NVARCHAR(MAX)) RETURNS NVARCHAR(MAX) AS BEGIN DECLARE @encodedText NVARCHAR(MAX) = N''; IF DATALENGTH(@inputText) > 0 BEGIN /* 1) Escape reserved HTML characters (& < >); FOR XML also entitizes CR as */ SET @encodedText = CAST((SELECT @inputText AS [p] FOR XML PATH(''), TYPE) AS NVARCHAR(MAX)); /* 2) Remove the leading

and trailing

that FOR XML adds */ SET @encodedText = SUBSTRING(@encodedText, 4, LEN(@encodedText) - 7); /* 3) Line breaks (CRLF, LF, lone CR) ->
; NBSP ->   */ SET @encodedText = REPLACE(@encodedText, N' ' + NCHAR(10), N'
'); SET @encodedText = REPLACE(@encodedText, NCHAR(13) + NCHAR(10), N'
'); SET @encodedText = REPLACE(@encodedText, NCHAR(10), N'
'); SET @encodedText = REPLACE(@encodedText, N' ', N'
'); SET @encodedText = REPLACE(@encodedText, NCHAR(13), N'
'); SET @encodedText = REPLACE(@encodedText, NCHAR(160), N' '); END RETURN @encodedText; END;