这几天在做一个自媒体平台,类似于百度头条号,今日头条和看点那种用户发布UGC内容的功能,其中有一个需求,就是根据用户使用富媒体编辑器传回的html内容,抽取其中的img标签,然后进行批量添加alt的功能,这个时候我就使用了cheerio来处理比较方便,但是就突然出现了一个非常奇怪的情况,当我新建文章之后,发现HTML中显示的就全部变成了&#x开头的HTML实体编码。

问题截图:

这就很奇怪,一开始我思考的方向是可能编码有问题,然后在分离cms的前端进行批量替换处理也许就能解决这个问题。后面查阅了大量资料,才发现是CHEERIO的问题,那么查阅cheerio的文档,发现有设置项可以直接关掉html实体编码的功能。

代码如下:

var $ = cheerio.load(sres.text, {decodeEntities: false});

也就是{decodeEntities: false},添加到option对象中就能解决这个问题。