node mysql模块写入中文字符时的乱码问题

刚刚发现一个奇怪的问题:

在node上用mysql模块将数据写入数据库的时候,在cmd上打开mysql发现select出来的中文是乱码。但这就奇怪了。

因为本机在安装mysql的时候就已经在配置文件将字符集设置为utf-8.

然后我在mysql输入status:

再输入:show variables like '%char%';

嗯。。。

然后我在node上检测,发现获取并解析了post的数据后,中文不是乱码,写入之前不是乱码,写入再读出也不是乱码。。

所以服务器上的读写是没问题的,难道是bash和cmd闹别扭?hahaha 

然后在npm文档看到mysql模块的一段话:

  • charset: The charset for the connection. This is called "collation" in the SQL-level of MySQL (like utf8_general_ci). If a SQL-level charset is specified (like utf8mb4) then the default collation for that charset is used. (Default: 'UTF8_GENERAL_CI')

模块已经默认帮我们设置了UTF8类。好吧。。

暂时认为是同时开cmd的mysql和node的mysql导致的冲突(虽然可能性不太大)

不过乱码问题,都是因为字符集没有设置好,下面给两篇刚刚看到的文章:

彻底解决mysql中文乱码

MySQL 插入数据时,中文乱码问题的解决

原文地址:https://www.cnblogs.com/alan2kat/p/7775298.html