我想打印从我的数据库中检索的许多国家/地区的字符串,但每次使用时我都会有一个神秘的字符:
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';
有什么想法吗?
答案 0 :(得分:0)
当您在已经解码的字符串上使用utf8_decode之类的东西或者对已经是UTF8的字符串进行编码时,有时会发生这种情况。如果这就是你正在做的事情,请尝试不编码/解码字符串以开始,然后看看输出是什么。
我自己在CodeIgniter中遇到了这个问题,对已经解码过的东西进行解码会使角色变得不稳定。
如果要从数据库中提取数据,请检查其中的表/字段的排序规则。