决PHP存取MySQL 4.1乱码问题

逆流成名

逆流成名

2016-02-19 19:22

今天图老师小编要跟大家分享决PHP存取MySQL 4.1乱码问题,精心挑选的过程简单易学,喜欢的朋友一起来学习吧!

从MySQL 4.1开始引入的多语言支持确实很棒,而且一些特性已经超过了其他的数据库系统。不过我在测试过程中发现使用适用于MySQL 4.1之前的PHP语句操作MySQL数据库会造成乱码,即使是设置过了表字符集也是如此。

MySQL 4.1的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)和连接(connection)。

查看系统的字符集和排序方式的设定可以通过下面的两条命令:

mysql SHOW VARIABLES LIKE 'character_set_%';

+--------------------------+----------------------------+

| Variable_name | Value |

+--------------------------+----------------------------+

| character_set_client | latin1 |

| character_set_connection | latin1 |

| character_set_database | latin1 |

| character_set_results | latin1 |

| character_set_server | latin1 |

| character_set_system | utf8 |

| character_sets_dir | /usr/share/mysql/charsets/ |

+--------------------------+----------------------------+

7 rows in set (0.00 sec)

mysql SHOW VARIABLES LIKE 'collation_%';

+----------------------+-------------------+

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

| Variable_name | Value |

+----------------------+-------------------+

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

| collation_connection | latin1_swedish_ci |

| collation_database | latin1_swedish_ci |

| collation_server | latin1_swedish_ci |

+----------------------+-------------------+

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

3 rows in set (0.00 sec)

上面列出的值就是系统的默认值。(很奇怪系统怎么默认是latin1的瑞典语排序方式)...

当我们按照原来的方式通过PHP存取MySQL数据库时,就算设置了表的默认字符集为utf8并且通过UTF-8编码发送查询,你会发现存入数据库的仍然是乱码。问题就出在这个connection连接层上。解决方法是在发送查询前执行一下下面这句:

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

SET NAMES 'utf8';

它相当于下面的三句指令:

SET character_set_client = utf8;

SET character_set_results = utf8;

SET character_set_connection = utf8;

再试试看,就正常了。

展开更多 50%)
分享

猜你喜欢

决PHP存取MySQL 4.1乱码问题

编程语言 网络编程
决PHP存取MySQL 4.1乱码问题

解决MySQL 4.1乱码问题

PHP
解决MySQL 4.1乱码问题

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

MySQL 4.1x 中文乱码问题

MySQL mysql数据库
MySQL 4.1x 中文乱码问题

MySQL 4.1的编码问题

PHP
MySQL 4.1的编码问题

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Mysql 4.1 Windows 下升级问题

Web开发
Mysql 4.1 Windows 下升级问题

MYSQL版本大于4.1问题 - PHPchina

PHP
MYSQL版本大于4.1问题 - PHPchina

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

MySQL忘记超级用户口令的解决办法

MySQL忘记超级用户口令的解决办法

PPS文件怎么打开及编辑

PPS文件怎么打开及编辑
下拉加载更多内容 ↓