sql >> Base de Datos >  >> RDS >> Sqlserver

¿Hay alguna forma de decodificar HTML en SQL Server?

Hay una solución mucho más fácil...

SQL Server admite el tipo de datos XML y admite la decodificación de entidades codificadas en XML/HTML. Si solo convierte la cadena al tipo de datos XML, puede usar la función de decodificación integrada.

Eso se vería así:

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

Para convertirlo en una función de fácil uso:

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

Tenga en cuenta que en el ejemplo de OP, la cadena parece haber sido codificada 3 veces seguidas. & se convirtió en & luego en & y luego en & . Como resultado, para recuperar la cadena "original", debe usar la función de decodificación 3 veces.