AMFPHP中文乱码解决方法

这件天许愿树里的中文一直乱码,今天终于成功解决,排除了几乎所有可能出故障的地方后突然想起来了AMFPHP,经过测试发现使用AMFPHP,即使是PHP内静态的中文在返回Flash的时候仍然是乱码,因此可以判定是AMFPHP将中文搞乱了,解决方法很简单,只需在gateway.php文件中将默认的charset设置:
[php]$gateway->setCharsetHandler(“utf8_decode”, “ISO-8859-1”, “ISO-8859-1”);[/php]
修改为:
[php]$gateway->setCharsetHandler(“iconv”, “UTF-8”, “UTF-8”); [/php]
就可以了。

在网上看到还有一个朋友是AMFPHP静态中文ok,但是从MySQL读取的中文不行,进行了如下设置就搞定了:
[php]$gateway->setCharsetHandler(“iconv”, “GB2312”, “GB2312”); [/php]
如果AMFPHP的编码和你的中文编码不同,那么就是乱码了,因为我的数据库和PHP文件编码都是UTF-8的,所以AMFPHP Charset需要设置为UTF-8,而上面那个朋友的数据库编码是GB2312的,所以需要设置为GB2312,如此设置后,AMFPHP所调用的PHP文件应该也需要设置为GB2312的编码,否则静态中文还是会乱。

在Flash-PHP-MySQL的应用中还是将编码都统一设置为UTF-8会比较方便。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

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