Node.js 使用tagsoup时出现撇号错误

Node.js 使用tagsoup时出现撇号错误,node.js,coffeescript,html-parsing,tag-soup,Node.js,Coffeescript,Html Parsing,Tag Soup,我试图在node.js web应用程序中获取网站的描述。它似乎工作得很好,但node.js似乎在NCR字符方面存在问题(http://en.wikipedia.org/wiki/Numeric_character_reference). 我的链接抓取器代码如下所示 getInfo:(url) -> errorMessage = 'Invalid Link' request(url, (error, response, body)-> if (!error &

我试图在node.js web应用程序中获取网站的描述。它似乎工作得很好,但node.js似乎在NCR字符方面存在问题(http://en.wikipedia.org/wiki/Numeric_character_reference). 我的链接抓取器代码如下所示

getInfo:(url) ->
  errorMessage = 'Invalid Link'

  request(url, (error, response, body)->
    if (!error && response.statusCode == 200)
      handler = new htmlparser.DefaultHandler((err, dom) ->
        if (err)
          res(error: errorMessage)
        else
          imgs = select(dom, 'img')
          titletags = select(dom,'title')
          descripTags = select(dom,'meta')
          filteredTags = _.filter(descripTags,(tag) -> tag.attribs.name? && tag.attribs.name == 'description')

          uri = response.request.uri.href

          mapFunc =(imgSrc) ->
            pattern = /^((http|https|ftp):\/\/)/
            img = imgSrc.attribs.src
            if (!pattern.test(img)) then uri.substring(0,uri.length-1) + img else img

          res(
            images: _.filter(_.map(imgs,mapFunc),(img)-> (img != '')) || []
            title: titletags[0].children[0].raw || ''
            description: if filteredTags.length != 0 then filteredTags[0].attribs.content || '' else ''
          )
      )
      parser = new htmlparser.Parser(handler)
      parser.parseComplete(body)
    else
      res(error: errorMessage)
  )
作为一个例子,如果我为抓取信息表单输入以下URL(http://www.zdnet.com),说明将为
ZDNet';s的突发新闻、分析和研究使业务技术专业人员能够了解最新的IT趋势、问题和事件。
。撇号就是问题所在(表示为
';

我的问题是,为什么没有任何库正确地解析有效的HTML NCR并将其转换为等效的字符串,如果没有办法解决这个问题,那么使用其他库替换所有NCR是否安全

我正在使用的库如下所述

request = require 'request'
htmlparser = require 'htmlparser'
select = require('soupselect').select
_ = require 'underscore'
最终使用库对字符串进行解码,效果很好(不确定node.js标准库默认情况下为什么不对字符串进行html解码)