如何在Gulp的cheerio管道中配置cheerio.load的decodeEntities参数
解决Gulp Cheerio插件的Unicode编码问题
我来帮你搞定这个问题!你遇到的输出内容被统一转成Unicode的问题,确实是因为cheerio默认会自动解码HTML实体。你查到的decodeEntities: false参数正是关键解决方案,只需要调整一下在Gulp管道中调用cheerio的方式就行。
原来的代码直接把处理函数传给cheerio,现在我们需要改成传入一个配置对象——把处理逻辑放在run属性里,同时通过parserOptions传入编码相关的配置。修改后的完整代码如下:
gulp.task('indexHtml', function () { return gulp.src('index.html') .pipe(cheerio({ run: function ($) { $('script').remove(); $('link').remove(); $('body').append('<script src="skin/zhuce/MergeMin/app.full.min.js"></script>'); $('head').append('<link rel="stylesheet" href="skin/zhuce/MergeMin/app.full.min.css">'); }, parserOptions: { decodeEntities: false } })) .pipe(gulp.dest('test/')); });
简单说下改动点:
- 把原来直接传入cheerio的处理函数,移到了配置对象的
run字段中 - 新增
parserOptions字段并设置decodeEntities: false,这会告诉cheerio不要解码HTML实体,输出内容就能保留原本的字符格式,不会再被转成Unicode了
内容的提问来源于stack exchange,提问作者武一鸣
相关产品推荐
相关产品推荐

