安装mysql是默认编码是UTF-8,windows下,命令行创建表的时候,插入中文就报Incorrect string value: '\xBF\xAA\xB7\xA2' for column 'team错,linux下就不会,请问这是为什么?
好像把编码改成GBK也可以插入。
mysql> create table team(
-> team_id int(5) zerofill primary key,
-> name varchar(20) not null,
-> team_desc varchar(128) default null);
Query OK, 0 rows affected (0.01 sec)
mysql> insert into team values(1,'java','java开发');
ERROR 1366 (HY000): Incorrect string value: '\xBF\xAA\xB7\xA2' for column 'team
desc' at row 1
mysql> show variables like '%char%';
+--------------------------+---------------------------------------------------
-----+
| 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 | C:\Program Files\MySQL\MySQL Server 5.1\share\char
ets\ |
+--------------------------+---------------------------------------------------
-----+
8 rows in set (0.03 sec)mysql> insert into team values(1,'java','java555');
Query OK, 1 row affected (0.01 sec)
好像把编码改成GBK也可以插入。
mysql> create table team(
-> team_id int(5) zerofill primary key,
-> name varchar(20) not null,
-> team_desc varchar(128) default null);
Query OK, 0 rows affected (0.01 sec)
mysql> insert into team values(1,'java','java开发');
ERROR 1366 (HY000): Incorrect string value: '\xBF\xAA\xB7\xA2' for column 'team
desc' at row 1
mysql> show variables like '%char%';
+--------------------------+---------------------------------------------------
-----+
| 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 | C:\Program Files\MySQL\MySQL Server 5.1\share\char
ets\ |
+--------------------------+---------------------------------------------------
-----+
8 rows in set (0.03 sec)mysql> insert into team values(1,'java','java555');
Query OK, 1 row affected (0.01 sec)
解决方案 »
- 将Mysql Connector/net6.4.4升级为6.5.4后出错,在线等,各位大哥帮帮忙
- 请问MYSQL启动后无法登陆
- 关于MySQL变量的问题!
- 烦,烦,烦,我的数据库默认的字符集为GBK,字段也是字符集为GBK,为什么会报字符集不正确呢
- 求救 急!!!!2周没有搞明白,在线等。
- 请问子查询的问题,如果子查询过大,是否会造成MYSQL死掉?
- phpmyadmin2.2.5如何实现认证功能
- 菜鸟问题,怎么改变root用户的密码
- 这是为什么?
- mysql innodb换成myisam后插入数据变快
- 初级mysql操作问题
- 哪位用过VS创建MySQL的强类型数据集?可发现过自动生成的方法参数错误的问题
MySQL 中文显示乱码
看见
[client]port=3306[mysql]default-character-set=utf8
把default-character-set=utf8改为default-character-set=GBK,
就行了,此处的编码修改是针对输入数据库时可以导入中文用的,
在my.ini文件的下方还有一处有编码的设置:
[mysqld]# The TCP/IP Port the MySQL Server will listen on
port=3306
#Path to installation directory. All paths are usually resolved relative to this.
basedir="C:/Program Files (x86)/MySQL/MySQL Server 5.1/"#Path to the database root
datadir="C:/ProgramData/MySQL/MySQL Server 5.1/Data/"# The default character set that will be used when a new schema or table is
# created and no character set is defined
default-character-set=utf8
此句红颜色代码勿要修改,那是用来对输入数据进入数据库是进行编码转换之用,以utf8进行保存这个方法应该是可以尝试的吧!