Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Existe-t-il un moyen de décoder HTML dans SQL Server ?

Il existe une solution bien plus simple...

SQL Server prend en charge le type de données XML et prend en charge le décodage des entités encodées XML/HTML. Si vous convertissez simplement la chaîne en type de données XML, vous pouvez utiliser la fonction de décodage intégrée.

Cela ressemblerait à ceci :

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

Pour en faire une fonction facile à utiliser :

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

Gardez à l'esprit que dans l'exemple d'OP, la chaîne semble avoir été encodée 3 fois de suite. & a été transformé en & puis dans & puis dans & . Par conséquent, pour récupérer la chaîne "d'origine", vous devez utiliser la fonction de décodage 3 fois.