问题描述
我正在尝试将旧系统从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 (将#修改为@)