将PHP 5.3.3升级到PHP 5.5.38 PEAR编码问题

问题描述

我正在尝试将旧系统从PHP 5.3.3升级到PHP 5.5.38。我从db读取数据,然后写入文件并处理该文件。使用PHP 5.3.3(PHP ini默认字符集拉丁语或utf8)时,编码字符(非英语字符)可以正常工作,但使用PHP 5.5.38时,编码字符不能很好地工作。

我在登台服务器中更改了RDS db配置参数character-set-server = latin1,编码工作正常。

生产RDS MYSQL DB配置

mysql> show variables like "%character%";
+--------------------------+-----------------------------------------------------------------+
| Variable_name            | Value                                                           |
+--------------------------+-----------------------------------------------------------------+
| character_set_client     | utf8                                                            |
| character_set_connection | utf8                                                            |
| character_set_database   | utf8                                                            |
| character_set_filesystem | binary                                                          |
| character_set_results    | utf8                                                            |
| character_set_server     | utf8                                                            |
| character_set_system     | utf8                                                            |
| character_sets_dir       | /rdsdbbin/oscar-5.6.mysql_aurora.1.19.2.0.157.0/share/charsets/ |
+--------------------------+-----------------------------------------------------------------+

,但表中的内容使用拉丁字符。当我在mysql客户端中查看文本时,会看到此

บรà¸à¸à¸à¸²à¸£模型剪辑หน้าใหม “ ิดเงà¸àà™5à5š。 ดู

使用PEAR版本的PHP 5.3.3:1.9.4

使用PEAR版本的PHP 5.5.38:1.10.12

我不知道是什么原因导致了此问题?从数据库读取数据后,只需将其写入文件中,即可在PHP 5.3.3中工作,而在PHP 5.5.38中不工作(不使用htmlspecialchars)。

我检查了PEAR更改日志,但是找不到与字符集有关的任何内容。

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)