解决数据库乱码。

以前数据库就有乱码,但是输出是正常的,就没有管,后来新添了数据也没啥问题,最近环境更新,导致输出也乱码,请问有木有能解决这个乱码的大神?

阅读 2.8k
3 个回答

中文乱码吗?试试下面的

alter database 数据库名  character set utf8;

改了后,在看下数据库编码有没有改成utf8,改了后重新插入一条看看。

用 mysql 语法插入一条看看是不是乱码
如果是的话设置下面这个:
  • 中止MySQL服务
  • 在MySQL的安装目录下找到my.ini,如果没有就把my-medium.ini复制为一个my.ini即可
  • 打开my.ini以后,在[client]和[mysqld]下面均加上default-character-set=utf8,保存并关闭
  • 启动MySQL服务并查询此时编码方式
show variables like 'character%';
看看大部分是不是都是utf8 了
如果是页面提交数据后乱码的话,设置下页面的编码为 utf-8,以及连接数据库的时候加入charset的格式utf-8

数据库字符集三个位置保持一致就可以了,客户端录入字符集、jdbc字符集、数据库表字符集,每个地方都检查一下,肯定有不一致才会有乱码出现。
对于环境调整的字符集问题,最好把数据拿出来按照指定字符集重新导入,要保证读取的时候不是乱码的

编码的问题,先检查下我们所使用表的编码方式,使用mysql命令:
show create table 表名;

 1.查看编码方式 中文的编码方式为gbk 或 UTF-8;
 2.如果表的编码方式为gbk,则查看每个字段的编码方式  如果不为中文编码方式 则修改
  ALTER TABLE `表名` CHANGE `列名` `列名` VARCHAR(45) CHARACTER

SET UTF8 NOT NULL;

总结一下,如果遇见插入中文乱码问题,先确定问题的产生肯定与编码方式有关,先检查数据库的编码方法,查看下数据库字符集,再查看下表的编码,最后检查下表中列的编码。检查这三个地方的编码,一般问题即可迎刃而解。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题