2013-04-22 109 views
-3

我得到一個進這樣..的SimpleXML與HTML實體=奇怪的字符

$posts = new SimpleXMLElement(WP_ROOT_URL . 'feed/', 0, true); 

在這種飼料我得到的一個項目包含HTML實體,這對「連字符實體「,這是–

然而,當這從SimpleXML返回時,我得到的是一個â€「。我已閱讀SO &上的其他類似問題,以確保您的頁面設置爲UTF-8;雖然不知道這將如何阻止SimpleXML返回奇怪的字符?

任何我有這個頁面上哪種方式的數據輸出上:

<meta http-equiv="content-type" content="text/html; charset=utf-8" /> 

我能在這裏做才能得到正確的實體?

回答

2

在PHP字符串中沒有統一或受管理的編碼,因此您不能將它們視爲包含字符而是字節。結果總是包含字節0xE28093,只有解釋發生變化。您可以通過致電bin2hex()查看結果。

在Windows-1252中解釋的字節以â€「出現,以UTF-8解釋,它們以出現。

如果你與此相呼應的網頁上,那麼你可以讓瀏覽器做解釋你的輸出UTF-8:

<?php 
header("Content-Type: text/html; charset=UTF-8"); //Put this before any output 
echo "stuff"; 
+0

謝謝你的解釋。這個竅門! :) – Brett 2013-04-22 14:59:35