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=true&characterEncoding=utf-8参数;
并且在网页代码中加上一个"set names utf8"或者"set names gbk"的指令,告诉MySQL连线内容都要使用utf-8或者gbk。
utf8或者gbk;
温馨提示:内容为网友见解,仅供参考
第1个回答  2021-03-22
1)在安装数据库的时候指定字符集

2)如果在安装完了以后可以更改以下文件:
\MySql目录\my.ini里的所有的default-character-set=utf-8
\MySql目录\data\depot_development\db.opt
default-character-set=utf-8
default-collation=utf-8_chinese_ci

3)创建数据库的时候:指定字符集类型
CREATE DATABASE test
CHARACTER SET 'gbk'
COLLATE 'gbk_chinese_ci";

4)创建表的时候也指定字符集
CREATE TABLE student
(
ID varchar(40) NOT NULL default,
UuseID varchar(40) NOT NULL default
)ENGINE=InnoDB DEFAULT CHARSET=gbk;

5)设置URL的时候
jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=UTF-8
第2个回答  推荐于2018-05-15
首先写一个数据库test,然后写一个表table,最后插入你想要写入的字段"工资"。出现了了乱码。就得
1. 启动MySQL,在里面输入 ALTER DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin,将test数据库的编码设为utf8。
2. 修改表的编码:ALTER TABLE `category` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin 以上命令就是将一个表category的编码改为utf8 。
3. 修改字段的编码:直接在MySQL里右击表,然后点编辑表,在里面修改或输入代码: ALTER TABLE `test` CHANGE `dd` `dd` VARCHAR ( 45 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL。4.得删除之前插入的字段之类的,再重新导入之前的字段本回答被提问者和网友采纳
第3个回答  2014-10-30
建库的时候设定编码,时刻保证编码统一
相似回答