htmlenties()在web托管服务器上无法正常工作


htmlentities() not working properly on web hosting server

我在用户输入的数据上使用htmlenties(),在本地服务器上没有问题。然而,当我在我的网络托管服务器上运行代码时,字符编码似乎一团糟。

示例(使用字符串åäáâ);

Local server
[message] => åäö áàâ
Output = åäö áàâ

然而,在我的网络托管服务器上的结果是

Web hosting server
[message] => åäö áàâ
Output = åäö áà â

将htmlenties()应用于字符串时会出现"字符集问题"。我该如何修复它?

我修复了它,这就是问题的原因;

根据php.net,5.4.0之前的php版本默认编码为"ISO-8859-1"。我所要做的就是简单地将其更改为中的"UTF-8";

htmlentities($string, ENT_COMPAT | ENT_HTML401, 'UTF-8');

(这是我尝试的第一件事,但我用小写写了"utf-8",但不起作用!!)

Unicode使用多个字节来表示每个字符。PHP将两个字节打印为单独的字符,除非您对其进行过滤

尝试

htmlentities(mb_convert_encoding($s,'utf8'));

确保您的PHP页面编码(页面本身)htmlentities($string, ENT_QUOTES, 'UTF-8')(在您的情况下为UTF-8)是相同的字符集。此外,请确保php.ini中的default_charset = '';,或将其注释掉,在default_charset之前使用;