从MySQL 4.1开始引入的多语言支持确实很棒, 而且一些特性已经超过了其他的数据库系统. 不过在测试过程中发现使用适用于MySQL 4.1之前的PHP语句操作MySQL数据库会造成乱码, 即使是设置过了表字符集也是如此.
MySQL 4.1的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation). 对于字符集的支持细化到四个层次: 服务器(server), 数据库(database), 数据表(table)和连接(connection).
当我们按照原来的方式通过PHP存取MySQL数据库时, 就算设置了表的默认字符集为utf8并且通过UTF-8编码发送查询, 你会发现存入数据库的仍然是乱码.
其实简单的方法是通过phpMyAdmin来设置.
设置下面几项:
1: 语言设置为 chinese (zh- utf-8)
2: MySQL 字符集: UTF-8 Unicode (utf8)
3: MySQL 连接校对 : utf8_general_ci
4: 新增数据库和数据表的时候, 整理项选择 utf8_general_ci
通过以上设置, 在phpMyAdmin中操作和查询的时候, 中文字符都不会乱码了.
但是你会发现, 在php程序中用以前的sql语句查询出来的结果还是乱码, 问题就出在connection连接层上.
解决方法是在成功连接数据库之后, 发送一句查询语句:
1: $this->LinkID = @ mysql_connect($this->Host , $this->User, $this->Password);
2: @ mysql_query('SET NAMES 'utf8'' , $this->LinkID);
此出 UTF8设置成你的程序的字符集,要与mysql对应.
![]()
由于各种原因,我们无法获知[mysql乱码的解决办法]原创作者,如侵犯了您的版权,请您及时联系我们!

