搭建latin1与utf-8的PHP环境想不乱码都不行的艰苦日子

好的,经过数天折磨,为了解决本地数据库乱码问题绞尽脑汁,费尽了精力.最终以失败告终,尝试了各种字符组合,安装了无数次phpcms系统.重装了无数次操作系统,用了各种版本IIS,各种mysql,各种php,无论是64位系统还是32位系统,配置了各种php.ini, my.ini……最终以失败告终.

我放弃了,心中怒喊一声I QUIT!……不过工作还得继续…我可怜巴巴的问很少在公司负责管理服务器的上级领导.结果说是,本地数据库表内汉字的确是乱码,我简直要疯了,原来这是一个不可能完成的MISSION…除了坑爹二字形容我的心情就是不免内心一阵抱怨…之前还总说我环境不对,所以会出现莫名的问题,我看跟环境没关系,IIS 5.1, 6.0, 7.5配置PHP可不是简单事情,浪费我多少青春,接下来我就要总结这些其实很傻的结论.越来越觉得这几天傻的出奇.

继上次写了一篇PHPCMS V9安装步骤详细介绍及说明(有效避免乱码产生),其实我开始觉得有时候有些乱码不可避免(虽然内心还是觉得latin1和utf-8应该有办法在数据库表内值进行转码).

首先不得不承认,如果没有什么特殊情况,请下载安装phpcms V9 UTF-8版,在安装过程中,选择创建UTF8的数据库,这一步做好了一般无论是环境整合包还是单独配置各个插件都不会出现乱码.

另一方面,如果没有特别需求,真的不建议用IIS搭建PHP服务器,可能个人感觉吧,总觉得那玩意就是玩ASP的,甚至ASP.NET都支持不好.而方便又轻松的选择是XAMPP, WAMP等等,当然或许用官方的PC_webServer也不错,不过他们都差不多.至于操作系统,普通应用比如说博客,企业站什么的,根本不在乎,别说什么linux好,数据库上千M了我看看执行效率是不是跟windows会有点点差距.

如果单独安装mysql进行配置的时候建议在选择字符集的那里选择utf-8,默认是选择了第一个,建议手动选择第三个,并在下拉菜单默认的latin1更改为utf-8.说到mysql配置,我不得不说我遇到的一个小问题,在mysql配置的最后一步,总会卡到未响应,只好强制关闭,原因很简单其实在之前的配置过程中,有一段英文是防火墙添加3306断口例外.勾上就没问题了.

当然,我的情况就是服务器上数据库创建时用的是latin1,而我有没有权限更改这个,我只有用phpcms备份数据库并将备份文件拷贝下来的权限.所以还原的时候本地数据库用latin1也会是乱码,如果本地数据库是utf-8,会产生更为糟糕的结果,数据无法导入.

至于怎么让本地服务器汉字恢复正常,我准备从备份的sql文件下手,研究一下…期待我的成果吧!

作者: whidy

不可忘记初衷,不可迷失方向,所有一切都为梦想... http://www.whidy.net/about (updated 2014-5)

《搭建latin1与utf-8的PHP环境想不乱码都不行的艰苦日子》有2个想法

发表评论

您的电子邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据