日期:2014-05-16  浏览次数:20813 次

mysql中不能输入汉字
编码信息为:
 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

插入数据的情况为:
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

------解决方案--------------------
引用set name 'gbk'
然后再试一下。

------解决方案--------------------
在系统窗口中,不支持UTF8
------解决方案--------------------
set name 'utf8'
或SET name 'gbk'
------解决方案--------------------
引用set names gbk; 后是可以输入汉字的,这是为什么呢? 我要用的utf8啊。

请问,这该怎么解决呢?