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) ->