php连接mysql查询结果中文显示混沌码解决方案 浏览:953

我们首先假设编码中使用的数据库是UTF-8
在这一点上,我们应该首先添加到PHP页面
复制代码代码如下所示:


字符集的值UTF-8这里必须是相同类型的编码保存文件时

然后添加到数据库查询
复制代码代码如下所示:
mysql_query(设置names'utf8);

行语句的代码值也应该与上面的编码值相同。

总之,编码类型的网页保存、网页的字符集= UTF-8,和编码的SET NAMES UTF8的语句被执行应该是一样的

下面是一个很好的分析

MySQL的集名称x字符集问题分析

我最近收到的训练BBT了投票系统。该系统代码不是很难,但我的时间主要花在字符集和编码研究。编码的问题(字符集)的MySQL和Apache两系统让我艰苦。这些问题的解决上互联网是零碎的、相对比较零散,其中大部分是提供解决方案,但没有说为什么。所以我总结了这几天的收获避免以后走弯路。这篇文章是为PHP写一点帮助(看你知道如何让你的PHP程序显示在大多数的空间提供商服务器正常),但更多的帮助在于安装和网络服务器设置。

首先,MySQL的字符集问题,Windows可以在my.ini修饰

1 #客户端部分。
2、{ }
3。默认字符集= utf8
4 #服务器部分。
5。{他}
6。默认字符集= utf8

这两个领域的变化设置数据库的默认字符集。第一个是客户端的默认字符集,第二是在服务器端的默认字符集。假设我们两个都UTF8,然后进入显示variebles像character_set_ %在MySQL客户端命令行;你可以看到下面的字符:

character_set_client latin1
character_set_connection latin1
character_set_database UTF8
character_set_results latin1
character_set_server UTF8
character_set_system UTF8

UTF8与上面的设置我们改变。在这一点上,如果我们从数据库读取数据采用UTF-8的PHP程序,它可能是一个字符串或其他随机码。半天的在线检查,解决方法很简单,连接数据库后,在一个查询集的名字UTF8,即执行读取数据,在PHP

1.mysql_query(SET NAMES UTF8);

它可以显示正常(只要数据库中的信息是正常的),为什么呢这个查询SET NAMES UTF8到底有什么样的影响

MySQL SET NAMES UTF8命令行输入,然后显示variebles像执行;character_set_ %;,发现latin1 character_set_client和character_set_connection character_set_results,变量的值为UTF8,这是猴子的原始变量3。查手册,上面的句子是相同的:

1.set character_set_client = utf8;
2.set character_set_results = utf8;
3.set character_set_connection = utf8;

看看这3个变量的作用:

信息输入路径:客户端-连接-服务器;
信息输出路径:服务器-连接-结果。

换句话说,每个路径已更改字符集编码的3倍。以随机码输出为例,在服务器的数据传输从utf8连接latin1,结果是转移到latin1。UTF-8的翻页结果了。如果两个字符集是不相容的,如latin1和UTF8,转型的过程是不可逆的和破坏性的。所以我不能回去。

但在这里宣布SET NAMES UTF8功能只是暂时的,而MySQL是重新启动,默认的恢复。

在服务器上配置MySQL的问题。我们不需要读和写,每次我们把SET NAMES UTF8确保一致的数据传输编码的数据库这三个变量可以通过将MySQL配置为默认的字符集来实现吗没有,我在网上找不到答案,所以从服务器配置的角度看,没有办法省略这一行。

摘要:为了更多的服务器,让你的网页显示,或添加SET NAMES UTF8,即使你不加上这句话,你可以定期访问它。
推荐文章1
广告