sql >> Database >  >> RDS >> Sqlserver

Is er een manier om HTML te decoderen in SQL Server?

Er is een veel eenvoudigere oplossing...

SQL Server ondersteunt het XML-gegevenstype en ondersteunt het decoderen van XML/HTML-gecodeerde entiteiten. Als je de string gewoon naar het XML-datatype cast, kun je de ingebouwde decodeerfunctie gebruiken.

Dat zou er zo uitzien:

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

Om er een functie van te maken voor eenvoudig gebruik:

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

Houd er rekening mee dat in het voorbeeld van OP de tekenreeks 3 keer achter elkaar lijkt te zijn gecodeerd. & werd veranderd in & vervolgens in & en dan in & . Als gevolg hiervan, om de "originele" string terug te krijgen, moet je de decodeerfunctie 3 keer gebruiken.



  1. MYSQL vermijd het twee keer invoegen van dezelfde rij

  2. Hoe kan ik een MySQL-tabel snel opnieuw sorteren op een van de kolommen?

  3. Gebruik een trigger om een ​​invoeging of update te stoppen

  4. Wat is het nadeel van het gebruik van een MySQL-veld met de grootte van een lange tekst wanneer elk item in een veld van gemiddelde grootte past?