2011-01-09 154 views
15

我試圖將HTML實體從源字符串轉換爲其文字字符等效。PHP中的html_entity_decode問題?

例如:

<?php 

$string = "Hello &#8211; World"; 
$converted = html_entity_decode($string); 

?> 

雖然這理所當然地轉換屏幕上的實體,當我在看的HTML代碼,仍呈現明確的實體。我需要改變它,以便從字面上轉換實體,因爲我不使用HTML頁面中的字符串。

關於我在做什麼的錯誤?

FYI我送了轉換後的字符串蘋果推送通知服務:

$payload['aps'] = array('alert' => $converted, 'badge' => 1, 'sound' => 'default'); 
$payload = json_encode($payload); 
+0

回聲線與老實說不相干。 $轉換仍然有它的實體(我發送通過API轉換爲iPhone)。 – mootymoots 2011-01-09 10:08:43

+0

是的,我想;這不是問題。我提供了一個答案。 – BoltClock 2011-01-09 10:09:55

回答

31

&#8211;映射到UTF-8字符(破折號),所以你需要指定UTF-8字符編碼:

$converted = html_entity_decode($string, ENT_COMPAT, 'UTF-8'); 
4

嘗試使用的字符集

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
<?php 
$string = "Hello &#8211; World"; 
$converted = html_entity_decode($string , ENT_COMPAT, 'UTF-8'); 
echo $converted; 
?> 

這應該工作 而且它也應該在源代碼中進行轉換