查看mysql数据库、数据表编码信息

来源:互联网 发布:中国的乒乓球知乎 编辑:程序博客网 时间:2024/06/15 17:34

通过MySQL的命令行即可以查看数据库、数据表的编码信息。

1.查看数据库编码格式

show variables like 'character_set_database';

2.查看数据表的编码格式

show create table <表名>;


编码格式的正确与否,影响着数据库中的数据(尤其是中文数据)能否正常显示。当出现乱码时,就需要通过上述方式查看编码是否设置正确,然后根据需要进行编码的修改。对于MySQL中编码的修改有如下方法:


1.修改数据库编码格式

alter database <数据库名> character set utf8;

2.修改数据表的编码格式

alter table <表名> character set utf8;

3.服务器读取数据库为乱码时可能要修改的编码

set names utf8;
此句等价于执行:SET character_set_client = utf8;SET character_set_results = utf8;SET character_set_connection = utf8;

上面3个变量在获取数据库数据中起着转化编码的作用。

服务器端查询数据库需要经历两个过程

信息输入:client→connection→server;

信息输出:server→connection→results。

每个路径要经过3次改变字符集编码。举一个出现乱码输出的示例,server里utf8的数据,传入connection转为latin1,传入results转为latin1,utf-8页面又把results转过来。如果两种字符集不兼容,比如latin1和utf8,这样就会出现乱码,并且转化过程就为不可逆的,一经转换就无法恢复。
还要声明一点,“SET NAMES UTF8”作用只是临时的,MySQL重启后就恢复默认了。

0 0
原创粉丝点击