Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

C'è un modo per eseguire la decodifica HTML in SQL Server?

C'è una soluzione molto più semplice...

SQL Server supporta il tipo di dati XML e supporta la decodifica di entità codificate XML/HTML. Se hai appena eseguito il cast della stringa nel tipo di dati XML, puoi utilizzare la funzione di decodifica incorporata.

Sarebbe simile a questo:

select cast('Q & A' as XML).value('.[1]','nvarchar(max)' );

Per trasformarlo in una funzione di facile utilizzo:

create function dbo.xmlDecode (@string nvarchar(max))
returns varchar(max)
begin
    return cast(@string as XML).value('.[1]','nvarchar(max)' )
end;

Tieni presente che nell'esempio di OP, la stringa sembra essere stata codificata 3 volte di seguito. & è stato trasformato in & quindi in & e poi in & . Di conseguenza, per recuperare la stringa "originale", devi utilizzare la funzione di decodifica 3 volte.