克隆应用程序上的不同字符集行为

时间:2019-01-08 20:05:50

标签: mysql

我写了一个基于php和mysql的应用程序。 我在运行在QNAP-NAS(开发)上的Web服务器上进行开发,并将代码复制到另一个QNAP-NAS(生产)上。 突然,我在生产型NAS上遇到了一个字符集问题(全部是utf8),而在dev-NAS上却没有了。

我将代码1:1从dev复制到生产环境,并插入了dev-DB的mysql-dump,因此db和代码应该完全相同。

但是,当我插入“ü”时,我在dev上得到了正确的"ü"在生产上得到了"ü"

抱歉,提供的信息很少,但我只是不知道从哪里开始:(

两个HTML页面当然都是“ charset = utf-8”,两个数据库都相同, 我用两种方式验证输入的正确性

$title = filter_input(INPUT_POST, 'title', FILTER_SANITIZE_FULL_SPECIAL_CHARS);

任何有关该问题的提示都非常欢迎,我有点迷茫。我还应该提供其他有用的信息吗?

预先感谢, 帕科

编辑: 我将字符集添加到了我的mysql字符串'mysql:host=localhost;dbname=mdt;charset=utf8'中 但没有效果。 我发现,我的开发环境运行于PHP 5.6.36,而生产环境运行于PHP 5.5.38

编辑2: 我更改了FILTER_SANITIZE_FULL_SPECIAL_CHARS to htmlentities,它的工作原理是:) 这是否意味着是不同的PHP版本导致了sanitize函数的不同行为?

0 个答案:

没有答案