node utf8汉字乱码如何解决


本篇内容主要讲解“node utf8汉字乱码如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“node utf8汉字乱码如何解决”吧!node utf8汉字乱码的解决办法:1、通过“typeof”查看“SarchName”的类型;2、使用“Name=iconv.decode(name,’gbk’)”方式转换编码为utf8即可。node.js实现编码转GBK转UTF8,中文乱码方案在做这些之前遇见了一个需求,则是用node去做一个姓名的模糊查询。其实这是一个简单再也不能简单的事情,可是却在这个问题上卡了两天。因为业务需要,给新功能做一个模糊查询。首先,我得搭建了一个node的http服务,然后我配置了mysql。建立了ORM模型后,准备开始编写sql语句的时候遇见了一个奇怪的事情,由于我的node是utf8的编码。但是我们公司的数据库采用的是GBK的编码,因此导致我在进行数据查询的时候出现了免费云主机域名错误,查询失败,原因就是因为编码问题导致。这问题也很简单,转码呗!!!开始百度node的转码方法在这里就遇见了iconv-jschardet这个插件,于是去npm了一下。开始使用

consticonv=require('iconv-jschardet');
SarchName=iconv.encode(SarchName,'gbk');

把前端送上来的字符转成GBK的编码,很开心。结果还是报错了。因为这个错误,我找了一下午。也不知道转成功了没有,于是试了无数种办法还是无法解决这个编码问题,于是想到了之前在写PHP的时候查询的时候用SQL转成二进制进行模糊匹配。于是我typeof了一下SarchName居然是Obj我就很纳闷了应该是String于是输出打印了一下,一看是个Buffer。这下明白了原来没有直接转成String那好,我就用Buffer.toString()方法结果还是不行,然后翻了一下文档。发现没有GBK的编码,这下就头大了。然后我试了试ascii发现还是不行,于是我试了一下binary结果ok了。**模糊查询执行完成没问题了,在返回的数据的时候发现都还是GBK编码。那简单啊!!!!那就转成utf8

Name=iconv.decode(name,'gbk')

然后返回发现没问题,那ok完成了。没过一会别人就测出bug说人的名字没有显示完全!!!!结果有的人的名字出现了这个符号�。。。。。百度发现说解码不全,暂无任何解决方法。。。最后没办法只能用了indexOf(‘�’)方法去检索字符串中出现生僻字然后记录其状态再用PHP进行转码。总之一个字,坑!**补充:node.js的gbk转utf8 遇见一些生僻字还是会转不出来出现乱码,建议有gbk的库别让node去做中文转码之类的事情,换别的语言吧。到此,相信大家对“node utf8汉字乱码如何解决”有了更深的了解,不妨来实际操作一番吧!这里是百云主机网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

相关推荐: Vuex是什么及怎么使用

这篇文章主要讲解了“Vuex是什么及怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vuex是什么及怎么使用”吧!Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 + 库。它采用集中式存储管…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 02/22 19:14
下一篇 02/22 21:47

相关推荐