我有一個數據庫,我使用MySql和codeigniter混合使用英文和法文名稱。Codeigniter + Mysql =口音沒有正確保存
Andrée這樣的法國名字回到Andrée,其他各種顯然不正確。
我該如何防止這種情況發生,並且我們可以放入Andrée並讓Andrée回來?
謝謝!
我有一個數據庫,我使用MySql和codeigniter混合使用英文和法文名稱。Codeigniter + Mysql =口音沒有正確保存
Andrée這樣的法國名字回到Andrée,其他各種顯然不正確。
我該如何防止這種情況發生,並且我們可以放入Andrée並讓Andrée回來?
謝謝!
原來,我不得不告訴php utf-8是配置文件中的默認值。一切都很好!
如果你的數據庫設置被設置爲UTF-8(並且你的評論是這樣的話),你可能會看到這些奇怪的字符,因爲你的頁面不是以UTF-8的形式呈現的。
UTF-8文檔應該帶有Content-Type頭文件來說明它們應該被解析爲什麼編碼。要添加這個頭,你可以之前或視圖後添加以下代碼/ S得到加載:
$this->output->set_content_type('text/html; charset=utf-8');
在你的文檔,你應該添加以下行:
<meta charset="utf-8">
如果您渲染文本只有這樣你纔會想將標題的text/html
這部分改爲更合適的東西,比如text/plain
。
我查看了Phpmyadmin中的數據庫值,它具有正確的口音和拼寫,所以它現在是Codeigniter方面的問題。 這已經在我的頭我的所有意見「」 當我把「$ this-> output-> set_content_type('text/html; charset = utf-8');」「在我加載視圖之前的控制器中。 – JonYork 2015-02-10 13:02:35
它應該在邏輯上工作,但沒有看到完整的設置,我會建議使用函數'htmlentities()'(http://php.net/htmlentities)來顯示UTF-8名稱。交給瀏覽器的代碼應該顯示'Andr eeute; e'而不是'Andrée'。 – 2015-02-10 22:41:14
你有沒有把你的mysql數據庫設置爲UTF-8/Unicode? – 2015-02-10 00:39:13
[UTF-8直通]可能的重複(http://stackoverflow.com/questions/279170/utf-8-all-the-way-through) – 2015-02-10 00:43:00
表排序規則Utf8_unicode_ci,行排序規則是UTF8_Unicode_CI,codeigniter數據庫設置,設置爲Utf8_unicode_ci 我錯過了什麼嗎? – JonYork 2015-02-10 01:16:43