2013-11-04 50 views
2

西班牙特殊字符顯示不正確,像'Ábbol'這樣的字顯示爲' bol'。特殊西班牙字符不顯示,Codeigniter MySQL

1)數據庫中的文本保存正確。 'Árbol'在數據庫上看起來很完美。

2)如果我插入一個新的單詞,例如。 'Tétrico',它被正確保存在數據庫中。

我一直在遇到這個問題,因爲我把項目移到另一臺服務器上,在本地主機(Ubuntu服務器)上工作得很完美。

我用盡了一切閱讀類似的問題:

  • 查看文件爲UTF-8編碼的無BOM。
  • header('Content-type:text/html; charset = utf-8');
  • 在my.cnf中,我已經添加了幾行:

    init_connect = 'SET NAMES UTF8'

    被character_set_server = UTF8

這是行不通的。

我還能做什麼?

我已經在本地主機上做了更改(因爲項目在這裏完美,所有內容都正確顯示)到新服務器上,但沒有任何更改。

+0

您輸出的數據實際上不是UTF-8編碼的。我猜猜Codeigniter數據庫配置沒有設置爲utf8。 – deceze

+0

decese,它是:在config.php $ config ['charset'] ='UTF-8';並在database.php $ db ['default'] ['char_set'] ='utf8'; $ db ['default'] ['dbcollat​​'] ='utf8_unicode_ci'; –

+0

「UTF-8」!==「utf8」。 – deceze

回答

6

我不完全確定爲什麼,但我有這個在html視圖,它不工作。

header('Content-Type: text/html; charset=utf-8'); 

通過閱讀這篇文章,我發現了一個備選答案:

How to display special characters in PHP

所以我不得不改變的HTML文件的標題。我把這一行:

header('Content-Type: text/html; charset=ISO-8859-1'); 

它現在工作完美。