在做这些之前遇见了一个需求,则是用node去做一个姓名的模糊查询。其实这是一个简单再也不能简单的事情,可是却在这个问题上卡了两天。
因为业务需要,给新功能做一个模糊查询。
首先,我得搭建了一个node的http服务,然后我配置了mysql。建立了ORM模型后,准备开始编写sql语句的时候遇见了一个奇怪的事情,由于我的node是utf8的编码。但是我们公司的数据库采用的是GBK的编码,因此导致我在进行数据查询的时候出现了错误,查询失败,原因就是因为编码问题导致。
这问题也很简单,转码呗!!!

开始百度node的转码方法在这里就遇见了iconv-jschardet这个插件,于是去npm了一下。开始使用

const iconv = 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.js实现编码转GBK转UTF8,中文乱码方案!!!相关推荐

  1. Android Studio项目编码设置为GBK或UTF-8  中文乱码 和 Eclipse项目编码设置

    Android Studio项目编码设置为GBK或UTF-8  中文乱码 1.打开File->Setting->Editor->File Encoding 进行编码设置 (只能影响你 ...

  2. Shell应用:批量将文件编码由gbk转utf-8

    Shell应用:批量将文件编码由gbk转utf-8,实例代码: [plain] #!/bin/bash // batch_change_GB2312_to_UTF-8 cd directory fin ...

  3. Java 中文字符串编码之GBK转UTF-8

    一.乱码的原因 gbk的中文编码是一个汉字用[2]个字节表示,例如汉字"内部"的gbk编码16进制的显示为c4 da b2 bf utf-8的中文编码是一个汉字用[3]个字节表示, ...

  4. powershell 批量转换文本文件编码(GBK转UTF-8)

    powershell 批量转换文本文件编码(GBK转UTF-8) 01 前言 02 正文 03 后记 01 前言 手头有一批SQL文件,通过某程序批量更新到Local DB.但是发现导进去后中文变乱码 ...

  5. php gbk转utf-8还有乱码,如何解决GBK转换UTF-8乱码问题?

    一直以来都是在用wordpress搭建网站,前段时间想利用dedecms这类程序来搭建一个在线问答平台,模板装上去进行了一些简单的测试,发现了一些bug,就是提问的页面出现乱码,找了很久才知道原因.原 ...

  6. php gbk json_encode,php中json_encode处理gbk与gb2312中文乱码问题的解决方法

    这篇文章主要介绍了php中json_encode处理gbk与gb2312中文乱码问题的解决方法,需要的朋友可以参考下 本文讲述了php中json_encode处理gbk与gb2312中文乱码问题的解决 ...

  7. Sublime Text 支持GBK , 解决中文乱码问题

    Sublime Text 支持GBK , 解决中文乱码问题 参考文章: (1)Sublime Text 支持GBK , 解决中文乱码问题 (2)https://www.cnblogs.com/tanr ...

  8. MYSQL使用UTF8中文乱码终极解决办法

    转自:http://wenku.baidu.com/view/d2d4f15ba8114431b80dd81f.html MYSQL使用UTF8中文乱码终极解决办法   作者:刘明灵 liumingl ...

  9. mysql utf8 latin1_mysql latin1 转 utf8 中文乱码

    环境:mysql数据库字符集为:latin1 java web项目连接数据库为:utf-8 中文乱码解决办法: 插入时:把插入内容转为unicode,再插入数据库 查询时:把latin1查询结果转成u ...

最新文章

  1. java命令行编译时提示找不到或无法加载主类的问题
  2. gitee合并分支_使用Gitee进行协作翻译的简单介绍
  3. 消息摘要的编程使用(MD5、SHA、HMAC)
  4. 《CLR via C#》 第三版的主要内容
  5. 轻松理解牛顿迭代法且用其求平方根
  6. 1.MySQL数据库的介绍
  7. mysql 存储过程 输出table_mysql 存储过程 没有结果输出。
  8. 新会计准则(New Edition of Accounting Standard)
  9. Sreng——分析系统状况的好工具
  10. vs2010没有新建项目的解决方法
  11. Struts2的运行流程
  12. 如何使用facebook_Facebook观看派对可供所有人使用(这是巨大的)
  13. 在线网校安装简易迅捷入门安装教程
  14. 安全技术的发展:物理隔离三步曲
  15. SQL 创建临时表并导入到新表中
  16. ActivitiListener
  17. 计算机加装固态硬盘分区操作
  18. 计算机系统多少分及格,一般电脑跑分多少合格
  19. 更新土地利用.shp 数据,垃圾场选址... 第八届GIS技能大赛解题
  20. 财务机器人实现高效赋能财务精细化运营

热门文章

  1. amazing!CSS 形状
  2. 水下机器人舟山_别看水下机器人小 它可是一个探海高手
  3. 第一次工业革命(二)——蒸汽机与工厂的出现
  4. 兼阅万:一款足不出户的网络好助手
  5. 【USB-GPIB驱动】LabVIEW通过USB-GPIB转接线程控示波器
  6. 人工智能+医疗 驶入快车道
  7. 在HTML5中true是什么意思,自定义标签中requiredtrue/requiredrtexprvaluetrue/rtexprvalue分别代表什么含义?...
  8. 国防科大计算机专业分数线,国防科技大学有哪些专业 录取分数线一般在多少...
  9. 第六章 面向对象编程基础总结
  10. mac图形设计软件TurboLayout安装教程