为什么'PHP的str_replace()导致编码问题?

时间:2012-04-03 14:51:45

标签: php character-encoding iso-8859-1

我有一个字符串,我正在通过str_replace(),它似乎对我无法弄清楚的编码有一些影响。

示例:

$str = "joined nearly 500 of the world’s investors .."; //shorted exceprt
$str = str_replace(' ', ' ', $str);
var_dump($str);

给出:

joined nearly 500 of the worldÂ’s investors

任何想法如何防止这种情况?

3 个答案:

答案 0 :(得分:2)

在您的输入中,您有一个不在其实体中的智能引用!另外,你可能想要使用UTF-8,所以试试这个:

$str = "joined nearly 500 of the world’s investors .."; //shorted exceprt
$str = htmlentities($str, ENT_QUOTES, "UTF-8");
$str = str_replace(' ', ' ', $str);
var_dump($str);

答案 1 :(得分:0)

这与str_replace或PHP无关,而是与HTML /浏览器字符集编码无关。

你可以(在PHP中,在其他任何事情之前):

header('Content-Type: text/html; charset=utf-8');

或(在HTML的head部分 - 这里是HTML 5):

<meta charset="utf-8">

另一种方法是更改​​浏览器的默认编码。

答案 2 :(得分:0)

请参阅此问题以及 BalusC

中最常用的答案

PHP Parsing Problem - &nbsp; and Â

这是如何解决问题的确切答案。