使用mongodb 在存储HTML片段时,汉字自动转码为NCR
发布于 8 年前 作者 xiaohudmn 4812 次浏览 来自 问答

第一次提问 谢谢大家了

使用模块fetch ,抓取一个gbk编码的网页,fetch 会自动将结果编码转换成utf8 , 使用console.log(),控制台也显示正常的结果。

因为我要将网页中的一段HTML片段 ,存储到MONGODB数据库。设置字段类型为STRING,用的mongoose模块 。

插入数据库之后 , 从出现汉字的开始到结尾所有字符都被转成了NCR编码格式。

这是从控制台查询的结果 QQ截图20151119162306.png

求助,这是啥问题呢?

7 回复

努力学习中,请各位大神 多多帮助

猜 应该是mongoose模块的 save 方法 在接收参数后处理上的问题?不知道怎么排查 ,谁帮一下

@xiaohudmn save之前console.log的结果是?

@CarlosRen consloe.log 控制台显示汉字没问题

@CarlosRen 不好意思,重新仔细的检查了一下 ,有部分被转码 ,可能是有一些控制字符导致的 我去掉控制字符在试试

@thesadboy 谢谢您,我也发现好像是这个问题,我来看一下cheerio 的文档。有空的话,可以告诉我

@thesadboy 由于自己粗心,惯性思维认为是插入数据库的问题,后来调试出来是cheerio的问题。加了 var $ = cheerio.load(newHtml,{decodeEntities: false}); 一起正常 谢谢大家,以后再问问题一定会更细心 。谢谢大家

回到顶部