如何在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
        ('&quot;','"'),('&amp;','&'),('&apos;',''''),('&lt;','<'),('&gt;','>'),('&nbsp;',' '),('&iexcl;','¡'),
        ('&cent;','¢'),('&pound;','£'),('&curren;','¤'),('&yen;','¥'),('&brvbar;','¦'),('&sect;','§'),('&uml;','¨'),
        ('&copy;','©'),('&ordf;','ª'),('&laquo;','«'),('&not;','¬'),('&reg;','®'),('&macr;','¯'),('&deg;','°'),
        ('&plusmn;','±'),('&sup2;','²'),('&sup3;','³'),('&acute;','´'),('&micro;','µ'),('&para;','¶'),('&middot;','·'),
        ('&cedil;','¸'),('&sup1;','¹'),('&ordm;','º'),('&raquo;','»'),('&frac14;','¼'),('&frac12;','½'),('&frac34;','¾'),
        ('&iquest;','¿'),('&Agrave;','À'),('&Aacute;','Á'),('&Acirc;','Â'),('&Atilde;','Ã'),('&Auml;','Ä'),('&Aring;','Å'),
        ('&AElig;','Æ'),('&Ccedil;','Ç'),('&Egrave;','È'),('&Eacute;','É'),('&Ecirc;','Ê'),('&Euml;','Ë'),('&Igrave;','Ì'),
        ('&Iacute;','Í'),('&Icirc;','Î'),('&Iuml;','Ï'),('&ETH;','Ð'),('&Ntilde;','Ñ'),('&Ograve;','Ò'),('&Oacute;','Ó'),
        ('&Ocirc;','Ô'),('&Otilde;','Õ'),('&Ouml;','Ö'),('&times;','×'),('&Oslash;','Ø'),('&Ugrave;','Ù'),('&Uacute;','Ú'),
        ('&Ucirc;','Û'),('&Uuml;','Ü'),('&Yacute;','Ý'),('&THORN;','Þ'),('&szlig;','ß'),('&agrave;','à'),('&aacute;','á'),
        ('&;','â'),('&atilde;','ã'),('&auml;','ä'),('&aring;','å'),('&aelig;','æ'),('&ccedil;','ç'),('&egrave;','è'),
        ('&eacute;','é'),('&ecirc;','ê'),('&euml;','ë'),('&igrave;','ì'),('&iacute;','í'),('&icirc;','î'),('&iuml;','ï'),
        ('&eth;','ð'),('&ntilde;','ñ'),('&ograve;','ò'),('&oacute;','ó'),('&ocirc;','ô'),('&otilde;','õ'),('&ouml;','ö'),
        ('&divide;','÷'),('&oslash;','ø'),('&ugrave;','ù'),('&uacute;','ú'),('&ucirc;','û'),('&uuml;','ü'),('&yacute;','ý'),
        ('&thorn;','þ'),('&yuml;','ÿ'),('&amp;','&'),('&deg;','°'),('&infin;','∞'),('&permil;','‰'),('&sdot;','⋅'),
        ('&plusmn;','±'),('&dagger;','†'),('&mdash;','—'),('&not;','¬'),('&micro;','µ'),('&euro;','€'),('&pound;','£'),
        ('&yen;','¥'),('&cent;','¢'),('&euro;','€'),('&pound;','£'),('&yen;','¥'),('&cent;','¢')
       ) 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('&#115;&#119;&#101;&#101;&#116;&#32;&#115;&#104;&#111;&#112;')
-------------
sweet shop

(1 row affected)