新闻中心

无忧主机深入浅出完美解决phpmyfaq乱码问题

作者 / 无忧主机 时间 2011-08-16 02:37:15

无忧主机(www.51php.com)一直以来以分享、互助为目标,一如既往的根据无忧主机产品售后团队的维护经验编写原创的技术帮助文档,并免费提供给大家阅读,如果你转载此文,请注明出处,无忧主机将不甚感激。今天小编向大家宣布,终于完美全面的解决了phpmyfaq乱码的问题。今天晚上2011/8/16日是一个值得庆贺的日子。下面是我对以往解决phpmyfaq乱码问题的补充和延续。 Phpmyfaq乱码问题有史以来就是一个“老大难”的问题。很多刚开始接触phpmyfaq的朋友,我想都因为唯夫老师的seowhy;很多又是遇到乱码问题无法解决,而国内相关的参考资料太少而被迫放弃。刚开始安装phpmyfaq问答系统的朋友都有可能遇到了乱码问题。关于这套优秀的国外php开源的问答系统网上参考资料非常少,解决这个乱码问题完全要靠站长自己琢磨。下面是我讲解决phpmyfaq 2.6.17安装乱码问题的详细解决过程和产生乱码问题的详细说明,希望能给你带来帮助或提示。为了更多的人能看明白无忧主机的免费,我写的很详细,文字可能会比较长,有的地方可能多啰嗦了点,请多担待。 一、phpmyfaq版本和php空间的选择 关于phpmyfaq版本选择和下载,网上一搜,哪实在是太多了,五花八门啥都有,该怎么选择类?无忧主机(www.51php.com)推荐站长到phpmyfaq官方网站上下载。使用最新的版本。推荐下载地址为: http://phpmyfaq.de/download.php 。 请选择纯linux环境下的php虚拟主机,只有linux环境下才能让phpmyfaq运行的更流畅、更稳定,也只有linux才配的上php编程语言。其它不多说了,想问为什么的站长就请阅读“为什么选择纯Linux环境下的php空间?二、phpmyfaq乱码(中文显示乱码)问题的分类 无忧主机(小编)根据自己的维护经验,phpmyfaq中文乱码有两种。一种是由于网页编码问题导致网页中文乱码,这种乱码问题多发生在老版本中,其解决办法也非常简单只要把phpmyfaq模版网页编码统一另存为utf8就搞定了,这种phpmyfaq中文网页乱码问题网上解决的教程有非常之多。详细的方法你可以参考“无忧主机教你解决Phpmyfaq网页中文乱码”。另一种就是由于数据库编码不一致导致中文显示乱码。解决这个问题,有些苦难。需你熟悉mysql数据库的操作,还需要掌握如何转换mysql数据库编码的方法。 三、解决由于数据库编码导致phpmyfaq乱码的方法 为了方便分析讲解,我把测试环境和版本说明一下: 本教程中使用的版本:phpmyfaq 2.6.17 服务器操作系统:linux redhat Apache版本:Apache/2 Php版本:php 5.2.17 Zend版本:Zend Optimizer 3.3.9 Mysql数据库:mysql 5.1.58 空间类型:使用无忧主机的linux环境下的香港独立php空间 使用的空间的环境探针:PHP探针 现在,我们就来看看phpmyfaq页面乱码和管理后台中的发生乱码症状(见下图),下面是刚刚安装好的一个全新的版本,这是在很多虚拟主机安装phpmyfaq时会遇到的phpmyfaq乱码问题。关于phpmyfaq安装方法,见“phpmyfaq开源问答(FAQ)系统快速安装教程” 前台页面乱码,中文变成了???,如下图红色方框所示: 网站管理后台中“添别管理”里面的中文也都变成了乱码。如下图红色方框内所示: 这种问题,我想很多安装使用过phpmyfaq 2.6.17的站长都遇到过吧!解决起来是不是有些头疼?问百度,找谷歌都看不到合适的实战教程来解决乱码问题;网上很多教程都是浅尝则止或写的非常简单或是写的不详细,更是没有图片说明,所谓无图无真相。接下来,无忧主机(www.51php.com)将会把这个问题透彻的分析给大家看,让你了解产生乱码的原因?并让你掌握解决phpmyfaq乱码的方法。 由于phpmyfaq 2.6.17是完全由数据库驱动,效率是非常高的,正因为如此,我们通过上面的截图观察发现,只要是写入到mysql数据库中的信息,然后在前台页面从数据库中读取显示出来的数据就变成乱码了(???)。而默认的那些数据却能正常显示。这无疑就是因为mysql数据库编码不一致的问题导致的。要解决问题就是要把mysql数据库编码统一起来,推荐使用utf8编码,mysql数据库校验编码为utf8-general_ci。请看下面详细分析: Phpmyadmin乱码产生的原因: 安装的时候数据库表是以latin1方式存储,数据库表整理方式为latin1_swedish_ci(见下图)。而虚拟主机服务器默认的数据库编码是utf8,数据库整理编码为utf8-general_ci。这也是大部门国内linux空间商采用的常用配置。由于phpmyadmin 2.6.17这个“洋货”安装的时候自动以latin1编码新建了数据库表。我个人认为这可能就是导致乱码的原因。解决它,要么就在安装前修改mysql数据库表存储编码为utf8或安装后把所有mysql数据库表从latin1_swedish_ci编码转换为utf8-general_ci编码即可解决问题。PS:我在网上看到过一篇,通过修改安装包中的constants.php文件来解决mysql数据库表存储编码的文章,我没做个测试,如果有心的站长可以测试下,欢迎交流,340555017@qq.com。 如何把latin1_swedish_ci编码转换为utf8-general_ci编码解决phpmyfaq 2.6.17乱码问题类?经过再三考虑,我用了一个最简单的方法实现,使用了一个php程序脚本,完美转换。该方法已经在无忧香港免备案php空间中实践,顺利通过。下面是这个mysql数据库编码转换工具的下载链接: latin1_swedish_ci编码转换为utf8-general完美转换工具(点击下载) 该工具使用非常简单,只需你配置下mysql数据库信息,然后用域名进行访问这个php文件,一根烟的功夫就搞定了。工具包中有使用说明,请用户使用前仔细阅读。附一张latin1_swedish_ci编码转换为utf8-general_ci编码成功后的截图: 能力有限,关于mysql编码转换的方法就介绍到这,如果有mysql数据库高手,请指导更简单的数据库编码转换的方法。交流QQ340555017。本教程已经成功解决了phpmyfaq 2.6.17乱码问题,其余版本未能一一测试,如你用的是其它版本请参考本基础教程中提到的解决该mysql数据库乱码问题的思路。更多关于phpmyfaql免费技术文档请点击:www.51php.com/phpmyfaq。文章转载,请注明出处。 纯Linux环境下高端免备案[香港独立IP地址] php空间,仅仅只需199元一年起。商务中国域名核心代理直销50元注册国际顶级域名。

本文地址:https://www.51php.com/phpmyfaq/3270.html

1
1
1
1
1
1
1

客户服务热线

0791-8623-3537

在线客服