使用PHP编码错误

时间:2017-10-13 13:02:54

标签: php nginx encoding utf-8 iconv

生产服务器(这是正确的行为)

>>> $str = "àáâãäåæçèéêëìíîïðñòóôõöøùúûüý";
=> "àáâãäåæçèéêëìíîïðñòóôõöøùúûüý"
>>> strtoupper($str);
=> "àáâãäåæçèéêëìíîïðñòóôõöøùúûüý"
>>> mb_strtoupper($str);
=> "ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝ"

新的本地环境

>>> $str = "àáâãäåæçèéêëìíîïðñòóôõöøùúûüý";
=> "àáâãäåæçèéêëìíîïðñòóôõöøùúûüý</string>"
>>> strtoupper($str);
=> "ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝ</string>"
>>> mb_strtoupper($str);
=> "ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝ</string>"

我在互联网上找不到关于变量末尾的</string>的任何内容。

iconv函数

也失败了

生产服务器

>>> iconv('UTF-8', 'ASCII//TRANSLIT', 'áè');
=> "ae"

新的本地环境

>>> iconv('UTF-8', 'ASCII//TRANSLIT', 'áè');
=> "'a`e" 

我按照this answer中的PHP说明但没有运气,我忽略了MySQL,因为我没有使用它,因为我有Nginx,所以我也忽略了Apache。

我开始认为这是因为mbstring扩展但无法找到与之相关的任何内容。

编辑:这不是重复的of this,因为它不是MySQL的问题,我已经尝试了那里暴露的解决方案。这不是为iconv提供替代方案的问题,而是要修复环境以与生产相同。

0 个答案:

没有答案