美文网首页
MySQL中文乱码

MySQL中文乱码

作者: 织毛衣的手 | 来源:发表于2018-04-28 11:43 被阅读0次

查看编码

 show variables like 'character%';

修改编码

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 ;  

这种方式修改重启之后就会复原,不推荐

修改配置文件的编码

修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置,如下所示:

[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
[client]
default-character-set = utf8

如果找不到 /etc/my.conf 就去偷一份过来

cp /usr/share/mysql/my-default.cnf /etc/
mv /etc/my-default.cnf /etc/my.cnf
这句话是用来修改数据库表大小写敏感问题,一般数据库表明都使用小写加下划线链接,养成好习惯
echo lower_case_table_names=1 >>/etc/my.cnf 

之前遇到的问题,mysql编码设置都正常了,但是写入的中文还是会转换成乱码

原因:使用PDO写入的时候指定charset=utf8 失败
本来是使用 dsn直接定义编码格式

$mysqldsn="mysql:host=localhost;dbname=vip;charset=utf8";

但是当排除所有的可能,那么就只剩下一开始就本以为设置正确的你了
换种方式重新设置字符集

$sql=" set names utf8 ";
$pdo->exec($sql);

测试发现 原因就在这里 (一早上就被你给坑了)

很气,但是也学到了,mysql编码的流程

set names utf8 等同于设置
set character_set_client = utf8
set character_set_results = utf8
set character_set_connection = utf8

信息输入的编码流程
输入: client -> connection -> server;
输出: server ->connection ->results;

每一次 -> 传输都会进行一次编码的转换(一共是三次,最终显示会再 一次转换)
以出现乱码的输出为例,server里utf8的数据,传入connection转为latin1,传入results转为latin1,utf-8页面又把results转过来。如果两种字符集不兼容,比如latin1和utf8,转化过程就为不可逆的,破坏性的。

相关文章

  • MySQL导出CSV文件

    最近接触到mysql比较多,遇到mysql文件导出csv文件,存在格式问题和中文乱码问题,以此记录 中文乱码问题 ...

  • MySQL 5.7中文乱码

    在排除tomcat和前端没有出现中文乱码的情况下,MySQL 5.7在存储中文时依然出现乱码,一般是由于mysql...

  • Mac上Mysql日常

    前言 最近一直在项目中遇到编码问题,mysql上是中文,到了页面就成乱码,反之,页面是中文,mysql上的乱码,m...

  • MySQL5.7的初始安装问题

    MySQL5.7 解决利用sqoop导入MySQL中文乱码的问题 sudo vim /etc/mysql/mysq...

  • linux下mysql数据库中文乱码

    关于linux下mysql数据库中文乱码的解决方法 mysql的默认编码是latinl不支持中文,进入mysql数...

  • mysql,idea 调试出现中文乱码

    调试的时候出现了中文乱码 形如 “口口”, 然后先看数据库,mysql这边的确出现了中文乱码 设置字符集

  • 数据库有关的问题

    1:mysql数据库出现的乱码问题:MySQL****会出现中文乱码的原因不外乎下列几点:1.server本身设定...

  • windows下mysql中文乱码解决方案

    windows下mysql中文乱码解决方案 查看乱码情况 1.status命令 2.show variables ...

  • Spring boot+Mybatis+MySQL插入中文乱码

    现象: 搭建spring boot+mybatis+mysql时出现插入mysql的中文出现乱码???。 现象分析...

  • 「MySQL」文章收藏

    一、MySQL系统管理相关文章 Mysql5.7修改默认密码 MySQL中文乱码问题 MySQL远程连接 二、数据...

网友评论

      本文标题:MySQL中文乱码

      本文链接:https://www.haomeiwen.com/subject/ynzwlftx.html