如何在sql server中解码html编码的文本?(或ms access!)
我有一个包含以下格式文本的列如何在sql server中解码html编码的文本?(或ms access!),sql,sql-server,ms-access,Sql,Sql Server,Ms Access,我有一个包含以下格式文本的列 sweet shop 有没有办法在sql server中将其直接转换为相应的文本?(它实际上是一个链接的ms access数据库,因此我也可以使用access!) (我认为这种格式也称为数字字符引用,包含unicode字符的代码点)Alex K的正确率为99.99%,但是如果您有命名代码,
sweet shop
有没有办法在sql server中将其直接转换为相应的文本?(它实际上是一个链接的ms access数据库,因此我也可以使用access!)
(我认为这种格式也称为数字字符引用,包含unicode字符的代码点)Alex K的正确率为99.99%,但是如果您有命名代码,如
或£代码>
因此,我们在这里执行暴力替换,然后通过XML解析字符串
示例
Declare @S nvarchar(max) = 'sweet shop £'
Select @S = replace(@S,MapFrom,MapTo)
From ( values
('"','"'),('&','&'),(''',''''),('<','<'),('>','>'),(' ',' '),('¡','¡'),
('¢','¢'),('£','£'),('¤','¤'),('¥','¥'),('¦','¦'),('§','§'),('¨','¨'),
('©','©'),('ª','ª'),('«','«'),('¬','¬'),('®','®'),('¯','¯'),('°','°'),
('±','±'),('²','²'),('³','³'),('´','´'),('µ','µ'),('¶','¶'),('·','·'),
('¸','¸'),('¹','¹'),('º','º'),('»','»'),('¼','¼'),('½','½'),('¾','¾'),
('¿','¿'),('À','À'),('Á','Á'),('Â','Â'),('Ã','Ã'),('Ä','Ä'),('Å','Å'),
('Æ','Æ'),('Ç','Ç'),('È','È'),('É','É'),('Ê','Ê'),('Ë','Ë'),('Ì','Ì'),
('Í','Í'),('Î','Î'),('Ï','Ï'),('Ð','Ð'),('Ñ','Ñ'),('Ò','Ò'),('Ó','Ó'),
('Ô','Ô'),('Õ','Õ'),('Ö','Ö'),('×','×'),('Ø','Ø'),('Ù','Ù'),('Ú','Ú'),
('Û','Û'),('Ü','Ü'),('Ý','Ý'),('Þ','Þ'),('ß','ß'),('à','à'),('á','á'),
('&;','â'),('ã','ã'),('ä','ä'),('å','å'),('æ','æ'),('ç','ç'),('è','è'),
('é','é'),('ê','ê'),('ë','ë'),('ì','ì'),('í','í'),('î','î'),('ï','ï'),
('ð','ð'),('ñ','ñ'),('ò','ò'),('ó','ó'),('ô','ô'),('õ','õ'),('ö','ö'),
('÷','÷'),('ø','ø'),('ù','ù'),('ú','ú'),('û','û'),('ü','ü'),('ý','ý'),
('þ','þ'),('ÿ','ÿ'),('&','&'),('°','°'),('∞','∞'),('‰','‰'),('⋅','⋅'),
('±','±'),('†','†'),('—','—'),('¬','¬'),('µ','µ'),('€','€'),('£','£'),
('¥','¥'),('¢','¢'),('€','€'),('£','£'),('¥','¥'),('¢','¢')
) A (MapFrom,MapTo)
Select cast(cast(@S as xml) as nvarchar(max))
以下是解码HTML编码字符串的一种更简单的方法:
它需要SQLHTTP,这是我们创建的免费数据库/程序集,您可以在我们的网站上找到:
结果如预期:
-------------
sweet shop
(1 row affected)
如果它们都是数字转义符,那么XML解析器可以将它们转换为nvarchar(max))@Alex K(cast(“&blabla”as XML)。你应该加上它作为答案,我会投票支持它。@orangesherbert很高兴它起到了帮助作用——完全公开应该加上希腊字母
SELECT SQLHTTP.net.HtmlDecode('sweet shop')
-------------
sweet shop
(1 row affected)