2009-09-02 61 views
1

目前在我的應用程序中,utf8編碼的數據被PHP的內部編碼破壞。如何在PHP中將內部處理編碼更改爲UTF8?

如何使它與utf8一致?

編輯:爲了顯示示例,請告訴我如何在PHP中輸出當前內部編碼?

在php.ini中,我發現以下幾點:

default_charset = "iso-8859-1" 

這意味着Latin1的。

如何將其更改爲utf8,比如utf8的iso版本是什麼?

+0

請你詳細說明一下,並舉例說明一下嗎? – rogeriopvl 2009-09-02 22:35:50

回答

4

將其更改爲:

DEFAULT_CHARSET = 「UTF-8」

有UTF-8的無ISO版本。

您需要詳細說明細節,因爲編碼可能會在PHP應用程序的許多不同區域發生損壞。 常見問題領域是:

保存和檢索從DB: 數據庫編碼必須與從PHP發送給它的字符串,或者必須將字符串轉換爲數據庫編碼。

PHP4的單字節字符串功能: PHP的功能,例如strlen的(),str_replace函數()不產生上多字節編碼如UTF-8正確的結果,因爲它們在單字節操作。

頁面編碼: 確保瀏覽器知道您發送的是UTF-8。

+0

是不是utf-8與iso-10646-1相同? 對於「PHP4的單字節字符串函數」,你的意思是將所有這些字符串函數替換爲mb_函數? – omg 2009-09-02 22:56:16

+0

iso-10646-1,不知道。雖然我不會將配置設置爲iso-10646-1。是的,使用PHP4的mb_functions。 PHP5對UTF-8有本地支持。 – bucabay 2009-09-02 23:36:39

+0

對於PHP4請參閱:http://www.phpwact.org/php/i18n/utf-8 – bucabay 2009-09-02 23:37:23

0

您可以在php文件中更改字符編碼。要更改php頁面中的編碼,請使用以下功能。

$new_value = htmlentities('$old_value',ENT_COMPAT, "UTF-8"); 

,你也可以添加在HTML頭部分

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

下面我希望這將有助於解決您的問題。