Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Existe alguma maneira de decodificar HTML no SQL Server?


Existe uma solução muito mais fácil...

O SQL Server oferece suporte ao tipo de dados XML e à decodificação de entidades codificadas em XML/HTML. Se você acabou de converter a string para o tipo de dados XML, poderá usar a função de decodificação integrada.

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

Para transformá-lo em uma função de fácil utilização:
create function dbo.xmlDecode (@string nvarchar(max))
returns varchar(max)
begin
    return cast(@string as XML).value('.[1]','nvarchar(max)' )
end;

Tenha em mente que no exemplo do OP, a string parece ter sido codificada 3 vezes seguidas. & foi transformado em & depois em & e depois em & . Como resultado, para obter a string "original" de volta, você deve usar a função de decodificação 3 vezes.