Php utf8_编码和utf8_解码输出中的神秘字符

Php utf8_编码和utf8_解码输出中的神秘字符,php,codeigniter,utf-8,html-entities,Php,Codeigniter,Utf 8,Html Entities,我想打印从数据库中检索到的许多国家的字符串,但每次使用时,我都会有一个神秘的字符: 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

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

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

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

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

有什么想法吗?

当您对已经解码的字符串使用utf8\u解码,或者对已经是utf8的字符串进行编码时,有时会发生这种情况。如果这是您正在做的,请尝试不编码/解码要开始的字符串,然后查看输出是什么

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


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

如果没有这些编码的东西,它能输出什么呢?阿尔格©里,阿姆©尼,阿塞拜疆人
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_unicode_ci';