插入数据的情况为: mysql> insert into user values(2,'asdf'); Query OK, 1 row affected (0.02 sec)
mysql> insert into user values(2,'asdf'); Query OK, 1 row affected (0.03 sec)
mysql> insert into user values(2,'啊'); ERROR 1366 (HY000): Incorrect string value: '\xB0\xA1' for column 'name' at row 1
请问这是怎么回事啊?解决方法是什么?记得用latin1的时候是可以写入汉字的。
------解决方案-------------------- set names utf8; insert into user values(2,'啊');
------解决方案-------------------- set name 'gbk' 然后再试一下。
http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx MySQL 中文显示乱码
------解决方案-------------------- windows 的命令行工具下无法正确的支持UTF8的输入。所以需要用GBK或者GB231。
------解决方案-------------------- SHOW CREATE TABLE `user`
在命令行下 set names utf8 or set names gbk 试试
------解决方案-------------------- SHOW CREATE TABLE `user`; set names gbk;
------解决方案-------------------- 再 mysql> show variables like 'collation_%'; +----------------------+-------------------+ | Variable_name | Value | +----------------------+-------------------+ | collation_connection | utf8_general_ci | | collation_database | latin1_swedish_ci | | collation_server | latin1_swedish_ci | 修要向如下修改: mysql> set collation_connection=utf8; Query OK, 0 rows affected (0.01 sec) mysql> set collation_database=utf8; Query OK, 0 rows affected (0.01 sec) mysql> set collation_server=utf8; Query OK, 0 rows affected (0.01 sec) ----------------------- Database home directory 下面的db.opt这个文件也需要修改 ,如下: mysql> create database mysqldb; Query OK, 1 row affected (0.00 sec) mysql> exit [root@mysqlap bin]# vi /var/lib/mysql/mysqldb/db.opt default-character-set=latin1 default-collation=latin1_swedish_ci 改成下面的: default-character-set=utf8 default-collation=utf8_general_ci 重新启动服务器(注意在更改字符集之前,建的所有表都需要重建,这一动作不会对已经建好的表起作用): MySQL server restart: [root@mysqldb mysqlserver]# /etc/init.d/mysql restart
------解决方案--------------------
------解决方案-------------------- 在系统窗口中,不支持UTF8
------解决方案-------------------- set name 'utf8' 或SET name 'gbk'
------解决方案--------------------