有关mysql数据库的编码

Posted 随意的不像实力派

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有关mysql数据库的编码相关的知识,希望对你有一定的参考价值。

今天在通过表单给php提交数据,然后插入到数据库中。网页与php的编码格式均为utf-8,在插入到数据库中时也设置了$this->query("set names utf8;");

但是还是出现了在mysql中读取数据出现乱码和问号的情况。后来实在是无解,将mysql设置为gbk编码,居然能正确的显示,简直就是颠覆了三观。。至今不知道为什么。

但是在这过程中也了解到了一些有关编码的知识:

在mysql中设置mysql的编码通过修改配置文件my.ini,该文件在mysql的安装路径下。

[mysql   //客户端

default-character-set=utf8

[mysqld]   //服务器端

character-set-server=utf8

 

在mysql客户端下操作:

SHOW VARIABLES LIKE ‘character%‘;查看字符集

SHOW VARIABLES LIKE ‘collation_%‘;

解决乱码的方法是,在执行SQL语句之前,将MySQL以下三个系统参数设置为与服务器字符集character-set-server相同的字符集。
character_set_client:客户端的字符集。
character_set_results:结果字符集。
character_set_connection:连接字符集。
设置这三个系统参数通过向MySQL发送语句:set names utf8
即在PHP中执行:mysql_query(“set names utf8”);

 






以上是关于有关mysql数据库的编码的主要内容,如果未能解决你的问题,请参考以下文章

MySQL基础 - 编码设置

如何修改MySQL字符集

数据库系列 | MYSQL VARCHAR 类型详解

PHP问题:浏览MySQL数据库表格时,为啥部分字段显示有乱码?

Navicat for MySQL导出excel文件出现中文乱码的问题

为啥DB2中一个汉字对应char(2) 而在MYSQL中一个汉字对应char(1) DB2和MYSQL都是用啥语言写的啊?