0

我想打印从数据库中检索到的许多国家字符串,但每次使用时我都有一个神秘的字符:

utf8_encode($string); the out put is  (Algérie ,  Arménie ,Azerbaïdjan ,Biélorussie )
utf8_decode($string); -> (Algérie , Arménie , Azerba?djan , Bi?lorussie )
htmlentities($string); -> (Alg�©rie , Arm�©nie ,Azerbaïdjan, ... )

我试图放入标题:

header ("Content-Type:text/html;charset=ISO-8859-1"); ->Arménie , Azerbaïdjan

header ("Content-Type:text/html;charset=utf-8");  -> Azerba�djan

我检查了我的数据库的配置,我发现

$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_unicode_ci';

任何想法 ?

4

1 回答 1

0

当您在已经解码的字符串上使用 utf8_decode 之类的东西,或者对已经是 UTF8 的东西进行编码时,有时会发生这种情况。如果这就是您正在做的事情,请尝试不对开头的字符串进行编码/解码,然后查看输出是什么。

我自己在 CodeIgniter 中遇到了这个问题,解码已经解码的东西会使角色变得不稳定。

如果您要从数据库中提取数据,请检查那里的表/字段的排序规则。

于 2013-01-24T10:34:33.540 回答