mysql解决中文乱码问题


乱码问题
上面这篇文章介绍了mysql乱码问题的解决方案。下面是我自己的总结。
乱码问题通常因为字符编码的设定不支持中文编码导致的。utf-8支持几乎所有的编码,因此我们的目的是把所有相关的字符编码设定为utf-8. 包含以下几个地方。

  1. 数据库服务器;
  2. 数据库;
  3. 数据库表;
  4. client;
  • 数据库服务器的修改通常是在%MYSQL_HOME%bin/my.ini里面, 比如我的就在这里,去掉注释即可;
## UTF 8 Settings
init-connect=\'SET NAMES utf8\'
collation_server=utf8_unicode_ci
character_set_server=utf8
skip-character-set-client-handshake
character_sets-dir="C:/xampp/mysql/share/charsets"
  • 数据库-是指你创建数据库的时候指定的字符集编码。可以通过这个命令查看;

mysql$ show variables like "%char%";

然后通过这个命令修改;

mysql$ ALTER DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

  • 数据库表-这个可以通过如下命令修改;

mysql$ ALTER TABLE tb_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

创建数据库表的时候最好在末尾加上如下设置 “ENGINE=InnoDB DEFAULT CHARSET=utf8;”;

create table t_goods_info
(
   id                   int not null auto_increment,
   goods_id             varchar(30) not null,
   goods_name           varchar(60) not null,
   ···
   primary key (id)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
  • 关于client就不多说了,就是你连接数据库的工具,比如windows dos是不支持utf-8的。不管你怎么设置都没办法显示中文了。

你可能感兴趣的:(mysql解决中文乱码问题)