2012-04-03 94 views
1

我有一個字符串,我通過str_replace(),它似乎有一些編碼,我無法弄清楚。爲什麼PHP的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 

任何想法如何避免這種情況?

+1

你有一個聰明的報價,而不是一個標準的撇號。 – MichaelRushton 2012-04-03 14:53:05

+1

你確定這是你的PHP代理嗎?您的HTML文件是否正確配置了編碼?在這種情況下, – 2012-04-03 14:57:14

+0

使用'utf8_encode' – kirilloid 2012-04-03 14:57:38

回答

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); 
0

這已無關str_replace或PHP,而是HTML /瀏覽器字符集編碼。

您可以做到(在PHP中,先天下之憂):

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

或(在你的HTML的head部分 - HTML 5在這裏):

<meta charset="utf-8"> 

另一種方法是更改瀏覽器的默認編碼。

相關問題