2011-06-25 37 views
1

在項目中,我目前使用htmlentities()過濾數據來自數據庫:如何使用PHP htmlentities()?

echo htmlentities($variable_name); 

我在美國,這個工作正常,我。我的朋友在巴西,對他而言,一些文字不能正確顯示。

我該如何使用htmlentities()以使其正確國際化?

+0

凱基說什麼。另外,由於你通常使用它很多,所以編寫一個包裝函數是非常明智的 - 'html()'和'h()'是很常見的。使用'htmlspecialchars()'會避免charset問題,並遵從舊的xhtml語法。 (但更好地使用字符集參數的可靠性)。 – mario

回答

5

問題可能是輸出不以UTF-8編碼。根據the php docs for htmlentities,功能

有一個可選的第三個參數 字符集定義的字符集在轉換中使用 。目前, ISO-8859-1字符集被用作 的默認值。

所以,你可以嘗試調用

htmlentities($string, ENT_COMPAT, 'UTF-8'); 

代替,這可能會解決問題,因爲它不是默認的字符編碼。

+0

謝謝!我會試試這個。 – usnidorg

+1

@usnidorg你可以請嘗試簡單地在頭部添加,而不是將其他參數傳遞給htmlentities並檢查if這樣可行 –

0

雖然我懷疑Keoki是否正確,但另一個可能的問題可能是字體。如果在朋友的字體不包含該字符的情況下使用特殊字符,他們只會看到缺少的字符符號。在網頁或任何您用來發布角色的媒體中,請確保已設置字體,因爲默認字體沒有保證。

如果這兩種情況都不是這樣,那麼沒有出現的示例字符是什麼?你能發佈你正在使用的完整代碼嗎?