您当前位置:优侠库 > 资讯攻略 >
来源:未知
2020-12-09 18:06:26 浏览: 分类:资讯攻略

解决PHP存取MySQL 4.1乱码问题

从mysql 4.1引入的多语言支持真的很棒,有些特性已经超越了其他数据库系统。但是在测试过程中,我发现在MySQL 4.1之前用php语句操作MySQL数据库会出现乱码,即使设置了表字符集。我阅读了新的MySQL在线手册“字符集支持”的第10章最后我找到了解决办法,通过了测试。

MySQL 4.1的字符集支持有两个方面:字符集和排序规则。对字符集的支持细化为四个层次:服务器、数据库、表和连接。

您可以通过以下两个命令设置系统的字符集和排序模式:

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 & gt显示类似“collation_%”的变量;
+-+-+
| Variable _ name | Value |
+-+
| collation _ connection | latin1 _ Swedish _ ci |
| collation _ database | latin1 _ Swedish _ ci |
| collation _ server | latin1 _ Swedish _ ci |
+-+
集合中的3行(0.00秒)


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

当我们以原来的方式通过PHP访问MySQL数据库时,即使表的默认字符集是utf8,查询是通过UTF-8编码发送的,你也会发现数据库中存储的代码仍然是乱码。问题就出在这个连接层。解决方案是在发送查询之前执行以下语句:

设置名称“utf8”;

相当于下面三条指令:
set character _ set _ client = UTF8;
SET character _ SET _ results = utf8;
SET character _ SET _ connection = utf8;

再试一次,正常吗?^_^享受!

关键词:问题、解决方案、latin1、MyS

优侠库网站每天提供最新最热门的安卓手机软件、游戏下载、分享热门手游资讯攻略教程、手机软件教程步骤,专注安卓手机游戏软件下载。

本文链接:http://www.123down.cn/gonglue/227210.html

攻略资讯
安卓软件
安卓游戏