刚刚发现一个奇怪的问题:
在node上用mysql模块将数据写入数据库的时候,在cmd上打开mysql发现select出来的中文是乱码。但这就奇怪了。
因为本机在安装mysql的时候就已经在配置文件将字符集设置为utf-8.
然后我在mysql输入status:
再输入:show variables like '%char%';
嗯。。。
然后我在node上检测,发现获取并解析了post的数据后,中文不是乱码,写入之前不是乱码,写入再读出也不是乱码。。
所以服务器上的读写是没问题的,难道是bash和cmd闹别扭?hahaha
然后在npm文档看到mysql模块的一段话:
-
: The charset for the connection. This is called "collation" in the SQL-level of MySQL (likecharset
). If a SQL-level charset is specified (likeutf8_general_ci
) then the default collation for that charset is used. (Default:utf8mb4
)'UTF8_GENERAL_CI'
模块已经默认帮我们设置了UTF8类。好吧。。
暂时认为是同时开cmd的mysql和node的mysql导致的冲突(虽然可能性不太大)
不过乱码问题,都是因为字符集没有设置好,下面给两篇刚刚看到的文章:
彻底解决mysql中文乱码
MySQL 插入数据时,中文乱码问题的解决
转载于:https://www.cnblogs.com/alan2kat/p/7775298.html