MySQL 不支持 GBK:引发的问题及解决办法(mysql不支持gbk)
MySQL 不支持 GBK:引发的问题及解决办法
MySQL 不支持 GBK(简体中文版本),这是一个常见的问题,因此,这里我们将就相关的问题及解决方案进行介绍。
GBK(简体中文版本)是一种汉字编码,用于 Windows 平台的中文版本系统下的中文输入法编码。但是 mysql 数据库默认的字符集编码 utf-8,通常情况下对 GBK 字符编码不支持,当程序使用 utf-8 数据库接收数据时,如果中文是用 GBK 编码,则可能会出现这样的错误:
MySQL 报错:
#1366 – Incorrect string value: ‘\xE7\xAE\x80\xE4\xBD…’
只要在客户端向 mysql 数据库传输数据,那么,就可能会出现上述错误,也就是 MySQL 不支持 GBK 的问题。
要解决上述问题,主要有两种方法:
1、第一种解决方法,就是在 MySQL 配置文件中更改默认的编码,将 utf-8 改为 gbk,即设置如下配置:
[mysqld]
collation-server=utf8mb4_unicode_ci
character-set-server=gbk
2、第二种方法,就是不改变 MySQL 配置,而是在 mysql 操作里面将数据编码处理成 php 的 gbk 编码,示例代码如下:
$result = query(‘SELECT * FROM table_name’);
while ($row = fetch_array($result)) {
$row[‘name’] = mb_convert_encoding($row[‘name’], ‘gbk’, ‘utf-8’);
}
总结:MySQL 不支持 GBK 常见问题,原因是 mysql 数据库默认的字符集编码 utf-8,不支持 GBK 字符编码,解决办法是在 MySQL 配置文件中修改默认的编码,也可以不改变 MySQL 配置,而是在 mysql 操作里面将数据编码处理成 php 的 gbk 编码。