首页 web前端 前端问答 node utf8汉字乱码怎么办

node utf8汉字乱码怎么办

Feb 08, 2023 am 10:29 AM
node.js utf8

node utf8汉字乱码的解决办法:1、通过“typeof”查看“SarchName”的类型;2、使用“Name=iconv.decode(name,'gbk')”方式转换编码为utf8即可。

node utf8汉字乱码怎么办

本教程操作环境:Windows10系统、node v14.16.0版、DELL G3电脑

node utf8汉字乱码怎么办?

  • node.js实现编码转GBK转UTF8,中文乱码方案

在做这些之前遇见了一个需求,则是用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的编码,这下就头大了。

430c177f0d9b4688b1a0c0b65fb9434.jpg

然后我试了试ascii发现还是不行,于是我试了一下binary结果ok了。

7dcb312896856386e9457146c4a72aa.jpg

**模糊查询执行完成没问题了,在返回的数据的时候发现都还是GBK编码。那简单啊!!!!那就转成utf8

Name=iconv.decode(name,'gbk')
登录后复制

然后返回发现没问题,那ok完成了。

没过一会别人就测出bug说人的名字没有显示完全!!!!

结果有的人的名字出现了这个符号�。。。。。

百度发现说解码不全,暂无任何解决方法。。。

最后没办法只能用了indexOf('�')方法去检索字符串中出现生僻字

然后记录其状态再用PHP进行转码。

总之一个字,坑!**

补充:node.js的gbk转utf8 遇见一些生僻字还是会转不出来出现乱码,建议有gbk的库别让node去做中文转码之类的事情,换别的语言吧。

推荐学习:《node.js视频教程

以上是node utf8汉字乱码怎么办的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

一文聊聊Node中的内存控制 一文聊聊Node中的内存控制 Apr 26, 2023 pm 05:37 PM

基于无阻塞、事件驱动建立的Node服务,具有内存消耗低的优点,非常适合处理海量的网络请求。在海量请求的前提下,就需要考虑“内存控制”的相关问题了。 1. V8的垃圾回收机制与内存限制 Js由垃圾回收机

图文详解Node V8引擎的内存和GC 图文详解Node V8引擎的内存和GC Mar 29, 2023 pm 06:02 PM

本篇文章带大家深入了解NodeJS V8引擎的内存和垃圾回收器(GC),希望对大家有所帮助!

聊聊如何选择一个最好的Node.js Docker镜像? 聊聊如何选择一个最好的Node.js Docker镜像? Dec 13, 2022 pm 08:00 PM

选择一个Node​的Docker镜像看起来像是一件小事,但是镜像的大小和潜在漏洞可能会对你的CI/CD流程和安全造成重大的影响。那我们如何选择一个最好Node.js Docker镜像呢?

utf8编码汉字占多少字节 utf8编码汉字占多少字节 Feb 21, 2023 am 11:40 AM

utf8编码汉字占3个字节。在UTF-8编码中,一个中文等于三个字节,一个中文标点占三个字节;而在Unicode编码中,一个中文(含繁体)等于两个字节。UTF-8使用1~4字节为每个字符编码,一个US-ASCIl字符只需1字节编码,带有变音符号的拉丁文、希腊文、西里尔字母、亚美尼亚语、希伯来文、阿拉伯文、叙利亚文等字母则需要2字节编码。

深入聊聊Node中的File模块 深入聊聊Node中的File模块 Apr 24, 2023 pm 05:49 PM

文件模块是对底层文件操作的封装,例如文件读写/打开关闭/删除添加等等 文件模块最大的特点就是所有的方法都提供的**同步**和**异步**两个版本,具有 sync 后缀的方法都是同步方法,没有的都是异

Node.js 19正式发布,聊聊它的 6 大特性! Node.js 19正式发布,聊聊它的 6 大特性! Nov 16, 2022 pm 08:34 PM

Node 19已正式发布,下面本篇文章就来带大家详解了解一下Node.js 19的 6 大特性,希望对大家有所帮助!

聊聊Node.js中的 GC (垃圾回收)机制 聊聊Node.js中的 GC (垃圾回收)机制 Nov 29, 2022 pm 08:44 PM

Node.js 是如何做 GC (垃圾回收)的?下面本篇文章就来带大家了解一下。

一起聊聊Node中的事件循环 一起聊聊Node中的事件循环 Apr 11, 2023 pm 07:08 PM

事件循环是 Node.js 的基本组成部分,通过确保主线程不被阻塞来实现异步编程,了解事件循环对构建高效应用程序至关重要。下面本篇文章就来带大家深入了解Node中的事件循环 ,希望对大家有所帮助!

See all articles