刚刚发现一个奇怪的问题:
在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 (likeutf8_general_ci
). If a SQL-level charset is specified (likeutf8mb4
) then the default collation for that charset is used. (Default:'UTF8_GENERAL_CI'
)
模块已经默认帮我们设置了UTF8类。好吧。。
暂时认为是同时开cmd的mysql和node的mysql导致的冲突(虽然可能性不太大)
不过乱码问题,都是因为字符集没有设置好,下面给两篇刚刚看到的文章: