解决MySql插入中文报错的问题

Posted 程序是练出来的

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决MySql插入中文报错的问题相关的知识,希望对你有一定的参考价值。

 JSP页面输入的数据也要转化UTF8的编码字符串在传人数据库

 

 

 

 

一劳用逸

mysql 的安装目录下有一个 my.ini 配置文件,通过修改这个配置文件可以一劳永逸的解决乱码问题。在这个配置文件中 [mysql] 与客户端配置相关,[mysqld] 与服务器配置相关。默认配置如下:

 

my.ini(Ctrl+F 查找),并根据需要配置相关项,之后重启MySQL 即可。

 

关键注意事项:

 

1、MySQL 的配置文件是分模块的,如[mysqld]、[client]模块等,里面的配置项必须是要该模块有的项,否则MySQL将无法启动。

 

[mysql]     

 default-character-set= utf8

 

2、修改character_set_server 的值,需要将character-set-server=utf8 配置在[mysqld]模块!(注意模块名与键名!utf8写成utf-8也会出错!),之后重启,查看编码,发现character-ser-server已经变成设置的utf8.

collation-server=utf8_general_ci

 

3

   [client]


 default-character-set = utf8

 

登录 mysql -u root -p

密码:Ltb6w@2018

 查看默认编码格式:mysql> show variables like "%char%"

 设置编码格式:

SET character_set_client=\'utf8\'

SET character_set_connection=\'utf8\';
 
SET character_set_server=\'utf8\'

查看数据库dudu的编码格式:

mysql> show create database dudu;

设置数据库dudu的编码格式:

ALTER DATABASE `dudu` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

查看数据表testTable的编码格式:

mysql> show create table testTable; 

设置数据表foot_ball的编码格式:

ALTER TABLE `foot_ball` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

创建数据库、数据表时指定utf8编码:

//建数据库

CREATE DATABASE `dudu` 
CHARACTER SET \'utf8\' 
COLLATE \'utf8_general_ci\';
 
//建数据表

CREATE TABLE `foot_ball` (
`ID` varchar(40) NOT NULL default \'\',
`TREAM` varchar(40) NOT NULL default \'\',
`URL` varchar(40) NOT NULL default \'\'
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

 

Incorrect string value: \'\\xE6\\x9B\\xB9\\xE5\\x86\\xAC...\' for column \'realname\' at row 1

该情况一般是由数据库设计时的编码错误导致的。

show variables like \'character%\' ;  查看数据库编码,为latin1。

    

如果项目正在测试当中,数据不重要的话,一劳永逸的解决办法是,使用 alter database 数据库名字 character set utf8; 更改数据库的编码格式,再重新建表。

注意:在 Hibernate中,指定hibernate.hbm2ddl.auto=create,重新部署项目,hibernate会自动重新建表。

     

如果项目中的数据是重要数据的话,使用 alter table 表名字 convert to character set utf8; 转换需要插入汉字的数据表编码为utf8即可(此例中的数据表是address):

    

为免操作不当,事先最好先备份好数据。

 

备份是个好习惯,是吧  *~*

  

memento..

以上是关于解决MySql插入中文报错的问题的主要内容,如果未能解决你的问题,请参考以下文章

解决mysql插入中文字符报错的问题ERROR 1366 (HY000): Incorrect string value: ‘xE5xB0x8FxE6x98x8E‘ for column

解决MySQL插入不了中文数据问题

解决python3向数据库插入日期字符串报错的问题

MySQL中使用group_concat()函数数据字符过长报错的问题解决方法

mysql插入中文字符报错的问题ERROR 1366 (HY000): Incorrect string value: ‘xE5xB0x8FxE6x98x8E‘ for column

关于MYSQL ERROR1045 报错的解决办法