Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Gibt es eine Möglichkeit, HTML-Decodierung in SQL Server durchzuführen?

Es gibt eine viel einfachere Lösung...

SQL Server unterstützt den XML-Datentyp und unterstützt die Decodierung von XML/HTML-codierten Entitäten. Wenn Sie den String einfach in den XML-Datentyp umwandeln, können Sie die eingebaute Dekodierungsfunktion verwenden.

Das würde so aussehen:

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

So verwandeln Sie es in eine einfach zu verwendende Funktion:

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

Denken Sie daran, dass die Zeichenfolge im Beispiel von OP anscheinend dreimal hintereinander codiert wurde. & wurde in & umgewandelt dann in & und dann in & . Um den "ursprünglichen" String zurückzubekommen, müssen Sie daher die Dekodierungsfunktion dreimal verwenden.