2013-11-04 48 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'); 

它现在工作完美。