用£替换£

时间:2012-01-27 11:32:23

标签: php character-encoding replace

我正在尝试将£替换为£,但它无效。

我试过了:

echo str_replace("£", "£", "£3 Discount Discount");

我也试过了html_entity_decode但也没有用。

4 个答案:

答案 0 :(得分:5)

尝试将UTF-8编码的数据显示为非UTF-8时,这是一个问题。您需要确保所有字符编码都是一致的,如果没有,那么您需要在它们之间进行适当的转换。最简单的方法是确保绝对一切都是UTF-8。这包括:

  • 保存在数据库中的数据(MySQL的字符集/整理)
  • 客户端与数据库的连接(使用SET NAMES UTF-8
  • 浏览器的输出(header('Content-Type: text/html; charset=utf-8');
  • 包含代码的PHP脚本(是的,这有时会产生影响)

我首先建议在检查上面的字符集之前检查数据库中是否存在任何mojibake(例如使用phpMyAdmin或命令行客户端)。如果您发现数据库实际上包含£,那么我建议将上述相同的逻辑应用于数据库的任何输入机制(包括HTML表单的字符编码)。

(注意:我在整个答案中都假设了MySQL。)

答案 1 :(得分:1)

如果您能够尝试使用£代替£字符,请为自己省去麻烦。

答案 2 :(得分:0)

您可以尝试在数据库中清理它。调整此查询以满足您的需求。

UPDATE YOUR_TABLE_NAME SET THE_ROW = REPLACE(THE_ROW , '£', '£');

答案 3 :(得分:-1)

请尝试utf8_decode()