如何向mysql5数据库插入中文 ———— JAVA学习室(http://www.java3z.com)java
向mysql5数据库正常插入中文,操做以下:
1.把字符集设定为能支持中文的gbk(在my.ini文件中改)
2.把数据库的Client Characterset和Conn. Characterset的字符集都设定为gbk;
SET character_set_client=gbk;
SET character_set_connection=gbk;
以后再尝试向数据库插入中文,这时插入没有出错,但查询显示是乱码。最后再更改;
SET character_set_results=gbk;
这样以后,全部的问题都解决了,能正常插入也能正常显示了。
若是还不正常,能够在建立数据库时指定编码gbk, 以下所示
(1)create database if not exists test default character set gbk;
注意:有些人可能会问,创建数据库表时候还没设置编码呢?其实,若是你容器编码是gbk的,则表也是gbk,以下设置表编码为gbk:
CREATE TABLE IF NOT EXISTS test(
test_id int auto_increment,
test_name varchar(50)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
(2)链接设置编码为gbk
dao.drivername=com.mysql.jdbc.Driver
dao.url=jdbc:mysql://localhost:3306/asking?useUnicode=true&characterEncoding=gbk
dao.username=
dao.passwd=
MySQL 乱码的根源是的 MySQL 字符集设置不当的问题,下面汇总了有关查看 MySQL 字符集的命令。包括查看 MySQL 数据库服务器字符集、查看 MySQL 数据库字符集,以及数据表和字段的字符集、当前安装的 MySQL 所支持的字符集等。mysql
1、查看 MySQL 数据库服务器和数据库字符集。
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 | D:\MySQL\share\charsets\ |......
+--------------------------+---------------------------------
2、查看 MySQL 数据表(table)的字符集。
mysql> show table status from java3z_chinajsp like '%article%'; (article为表名)sql
3、查看 MySQL 数据列(column)的字符集。
mysql> show full columns from article;
4、查看当前安装的 MySQL 所支持的字符集。
mysql> show char set; //charset, or character set
5、经过MySQL命令行修改字符集:
mysql> set character_set_client=utf8;
mysql> set character_set_connection=utf8;
mysql> set character_set_database=utf8;
mysql> set character_set_results=utf8;
mysql> set character_set_server=utf8;
mysql> set character_set_system=utf8;
mysql> set collation_connection=utf8;
mysql> set collation_database=utf8;
mysql> set collation_server=utf8;
要想知道远程主机上mysql服务器使用的字符集,可先链接到远程主机上的MYSQL。数据库
假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入如下命令:
mysql -h110.110.110.110 -u root -p abce123;(注:u与root之间能够不用加空格)
退出MYSQL命令:exit(回车)服务器
MySQL正常插入并显示中文数据需知足的条件 —— 网易博客jsp
MySQL数据库默认编码已是utf8了, default-character-set = utf8,但是向数据库中表中插入中文时,却总是出现 ....\xB5\xA5\xD1\xA1 for column...这样的错误,通过查阅网上类型的错误后,发现一个很奇妙的现象,接下来咱们就来开始介绍。学习
1、在安装数据库时就设定字符集编码为utf8的环境下编码
在当前字符集编码为:url
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8spa
建立数据库:
(1)插入中文数据,操做不能成功。
(2)修改字符集编码为:
Server characterset: utf8
Db characterset: utf8
Client characterset: gbk
Conn. characterset: gbk
插入中文数据,显示正常。
2、在安装数据库时就设定字符集编码为gbk的环境下
1. 当前字符集编码是:
Server characterset: gbk
Db characterset: gbk
Client characterset: gbk
Conn. characterset: gbk
建立数据,插入中文数据,操做正常,显示正常。
2. 当前字符集编码为utf8:
Server characterset: gbk
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
3. 当前字符集编码为utf8:
Server characterset: gbk
Db characterset: gbk
Client characterset: utf8
Conn. characterset: utf8
插入中文数据,操做不能执行。
结论:向数据库正常插入中文,必须知足如下条件:
1. 要把字符集设定为能支持中文的gbk或则utf8;
2. 把数据库的Client Characterset和Conn. Characterset的字符集都设定为gbk;
根据上面的提示 ,我更改了:
SET character_set_client=gbk;
SET character_set_connection=gbk;
以后再尝试想数据库插入中文,这时没有出错,能插入但是查询出来是乱码。
最后再更改;
SET character_set_results=gbk;
这样以后,全部的问题都解决了,能正常插入也能正常显示了。
关于MySQL数据库正常插入中文数据并能正常显示的条件就介绍到这里,但愿经过本次的介绍可以带给您一些收获吧!
修改my.ini文件,在其中添加:
default-character-set=gb2312
设置数据库字符集格式:
alter database da_name default character set 'charset'
1)设置数据库编码 /etc/my.cnf
[mysqld]
default-character-set=gbk
...
[client]
default-character-set=gbk
---------------------------------------
2)按字符集导出
$mysqldump -u root -p dbname --default-character-set=gbk > a.sql;
3)查看SQL文件的编码
> file a.sql
a.sql: UTF-8 Unicode ...
> iconv -f utf-8 -t gbk a.sql > a2.sql
> file a2.sql
a2.sql: Non-ISO extended-ASCII English text 这时已是gbk的编码了
3)导入数据
查看数据库服务和客户端字符集
mysql> status;
Server characterset: gbk
Db characterset: gbk
Client characterset: latin1
Conn. characterset: latin1
mysql> set names 'gbk';
mysql> status;
Server characterset: gbk
Db characterset: gbk
Client characterset: gbk
Conn. characterset: gbk
这时才能导入数据
mysql> source a.sql; ---------------------------------------------------------------------------------- 单独设置某个数据库: alter database testdb character set ‘utf8’; 查看mysql支持的编码: show character set; 查看系统的字符集: SHOW VARIABLES LIKE ''character_set_%'';