本文目录一览:
MySQL数据库中的中文乱码如何解决
mysql数据乱码问题可能有以下三种原因:
1.server本身设定问题,例如还停留在latin1版本;
2.table的语系设定问题(包含character与collation);
3.客户端程式(例如php,java)的连线语系设定问题;
建议使用utf8!!!!
想要避免mysql的中文乱码问题,可以尝试以下方法:
1,对于版本问题,建议去官网更新最新的版本或者比较好用的版本;
2,创建数据库,创建表时没有对字符编码进行设定会造成乱码问题:
创建数据库的时候:CREATE DATABASE `test`
CHARACTER SET 'utf8'
COLLATE 'utf8_general_ci';
建表的时候 CREATE TABLE `database_user` (
`ID` varchar(40) NOT NULL default '',
`UserID` varchar(40) NOT NULL default '',
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
3,对于第三种情况,参考一下方法:
编辑linux服务器中/etc/my.cnf文件,在[mysql]段加入default_character_set=utf8;
如果只是调试遇到乱码问题:
在编写Connection URL时,加上?useUnicode=truecharacterEncoding=utf-8参数;
并且在网页代码中加上一个"set names utf8"或者"set names gbk"的指令,告诉MySQL连线内容都要使用utf-8或者gbk。
utf8或者gbk;
mysql导出数据库乱码怎么办
在mysql导入导出数据时经常出现中文乱码的问题,大多是因类导入导出时编码设置不一致所引起的。本文介绍了不同平台下的编码转换方法,供大家参考。
在linux系统中默认的是utf8编码,而windows是gbk编码,如果在这二个系统间导入未经指定编码的数据,就会出现乱码。
首先,确定导出数据的编码格式,使用mysqldump的时候需要加上--default-character-set=utf8,
例如:
mysqldump -uroot -p --default-character-set=utf8 dbname tablename bak.sql
那么导入数据时也要使用--default-character-set=utf8:
mysql -uroot -p --default-character-set=utf8 dbname bak.sql
统一编码后,mysql数据迁移中的乱码问题就解决了。
使用windows作为导出数据源,并导入 freebsd环境下的mysql库,解决方法详解。
导出数据
一、首先,在windows平台下mysql用作导出数据库源。
查看字符编码的系统变量:
代码示例:
mysql show variables like ‘%char%';
+————————–+—————————-+
| Variable_name | Value |
+————————–+—————————-+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | gbk |
| character_set_system | utf8 |
| character_sets_dir | D:mysqlsharecharsets |
+————————–+—————————-+
查看character_set_database,这里是latin1,latin1是装不了多字节字符集的。
二、在windows下设置系统变量为utf8
mysqlset character_set_database=utf8; ##设置默认的字符集为utf8
三、导出数据
mysql select * from table into outfile ‘c:table.txt' where +条件
这时导出了部分数据,并以txt文件存在 table.txt中。
导入数据
在freebsd平台下
一、同样设置字符编码的系统变量
代码示例:
mysql show variables like ‘%char%';
+————————–+—————————-+
| Variable_name | Value |
+————————–+—————————-+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | gbk |
| character_set_system | utf8 |
+————————–+—————————-+
mysqlset character_set_database=utf8; ##设置默认的字符集为utf8
二、转载数据
mysqlload data local infile ‘/home/table.txt' into table `table`;
至此、条件数据完整导入导出,并处理了乱码的情况。
总之,两台mysql服务器导入导出时,一定要确保两台服务器的character_set_database参数相同,这样才能防止一些乱码的情况。当然我们还可以使用其他字符集,如gbk来进行调整。
解决方法三
乱码解决方法
导入数据后,在命令行查看发现中文乱码
使用以下命令查看系统字符集
show variables like 'char%';
如果不是GBK或UTF8,则停止mysql服务,然后到安装目录修改my.ini文件,
将文件中下面的变量改成如下,如果没有这个变量则增加这些变量
[mysql]
default-character-set=gbk
[mysqld]
character-set-server=utf8
重新启动服务,重新导入数据,如果还乱码,只要把导入与导出编码统一即可解决问题。
怎样解决MySQL中文显示乱码
1、修改安装文件根目录下的我的文件,搜索字段默认特征设置,设置其值为中国字符编码或国际编码之一,重启MySQL服务器;
2、修改数据库编码,在安装目录的根目录下找到出现乱码的数据库对应的文件夹,进入文件夹,找到此数据库的编码配置文件,进行修改,重启MySQL服务器;
3、备份原数据库数据,直接删除此数据库,重新创建数据库并设置编码,再重启MySQL服务器。
4、若仍出现乱码,重装系统即可。
显示乱码有许多原因:
这里主要是MySQL数据库中 因为**【编码不统一】**造成的
Latin1是ISO-8859-1的别名,有些环境下写作Latin-1,最终要改为utf-8
在数据库中输入查询命令:
修改成功后的查看界面:
mysql出现乱码问题如何解决?
1、修改安装文件根目录下的my.ini文件:\x0d\x0a搜索字段default-character-set,设置其值为utf8/gbk之一(注意设置utf8的时候不能设成utf-8)\x0d\x0a再去重启MySQL服务器\x0d\x0a如果还是出现乱码,接着执行下面操作\x0d\x0a2、修改数据库编码\x0d\x0a在安装目录的data目录下找到你出现乱码的数据库对应的文件夹(这个文件夹即是你这个数据库存放数据的地方),\x0d\x0a进入找到db.opt文件(即此数据库的编码配置文件),修改值为下面的\x0d\x0adefault-character-set=gbk\x0d\x0adefault-collation=gbk_chinese_ci\x0d\x0a再去重启MySQL服务器\x0d\x0a如果还是出现乱码,接着执行下面操作\x0d\x0a3、再不行,备份原数据库数据,直接drop掉这个数据库\x0d\x0a重新创建数据库并设置编码\x0d\x0acreate database yourDB character set gbk;\x0d\x0a别忘了重启MySQL服务器综上:如果还没有解决,我也没辙了。重装吧,重装的时候设置下编码三处的编码要一致