默认情况下插入中文会报错
但是报错的原因不在于插入的是否是中文
而是因为插入数据的时候本质上是从客户端将插入语句发送到了MySQL服务器,
MySQL服务器接收到插入语句之后再执行插入语句
如果客户端是以GBK发送的, 而服务端是以UTF8接收的, 那么就会报错(不能识别)
查看服务器编解码字符集
show variables like 'character_set_%';
+--------------------------+------------------------------------------------------------------+
| Variable_name | Value |
+--------------------------+------------------------------------------------------------------+
| character_set_client | utf8 以什么字符集接收客户端发送的数据
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 以什么字符集给客户端发送数据
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | D:\Developer\MySQL\share\charsets\ |
+--------------------------+----------------------------------------------------------------+
解决中文不能插入和返回中文是乱码的问题
windows的终端无法修改编码, 所以我们可以通过set names gbk;来修改MySQL的字符集
set names gbk; 将客户端和MySQL服务器的编码设置为一样的即可
网友评论