我正在尝试将£
替换为£
,但它无效。
我试过了:
echo str_replace("£", "£", "£3 Discount Discount");
我也试过了html_entity_decode
但也没有用。
答案 0 :(得分:5)
尝试将UTF-8编码的数据显示为非UTF-8时,这是一个问题。您需要确保所有字符编码都是一致的,如果没有,那么您需要在它们之间进行适当的转换。最简单的方法是确保绝对一切都是UTF-8。这包括:
SET NAMES UTF-8
)header('Content-Type: text/html; charset=utf-8');
)我首先建议在检查上面的字符集之前检查数据库中是否存在任何mojibake(例如使用phpMyAdmin或命令行客户端)。如果您发现数据库实际上包含£
,那么我建议将上述相同的逻辑应用于数据库的任何输入机制(包括HTML表单的字符编码)。
(注意:我在整个答案中都假设了MySQL。)
答案 1 :(得分:1)
如果您能够尝试使用£
代替£
字符,请为自己省去麻烦。
答案 2 :(得分:0)
您可以尝试在数据库中清理它。调整此查询以满足您的需求。
UPDATE YOUR_TABLE_NAME SET THE_ROW = REPLACE(THE_ROW , '£', '£');
答案 3 :(得分:-1)
请尝试utf8_decode()
。