我试图用£替换£并且它不起作用.
我试过了:
echo str_replace("£", "£", "£3 discount discount");
我也试过html_entity_decode也没用.
解决方法:
尝试将UTF-8编码的数据显示为非UTF-8时,这是一个问题.您需要确保所有字符编码都是一致的,如果没有,那么您需要在它们之间进行适当的转换.最简单的方法是确保绝对一切都是UTF-8.这包括:
>保存在数据库中的数据(MysqL的字符集/整理)
>客户端与数据库的连接(使用SET NAMES UTF-8)
>浏览器的输出(标题(‘Content-Type:text / html; charset = utf-8’);)
>包含代码的PHP脚本(是的,这有时会产生影响)
在检查上面的字符集之前,我首先建议检查数据库中是否有任何mojibake(例如使用PHPMyAdmin或命令行客户端).如果您发现数据库实际上包含£,那么我建议将上述相同的逻辑应用于数据库的任何输入机制(包括HTML表单的字符编码).
(注意:我在整个答案中都假设了MysqL.)