【问题标题】:Mysterious characters in output with utf8_encode and utf8_decode使用 utf8_encode 和 utf8_decode 输出的神秘字符
【发布时间】:2013-01-08 01:50:03
【问题描述】:

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

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';

有什么想法吗?

【问题讨论】:

  • 没有这些编码的东西会输出什么?
  • 阿尔及利亚,阿梅尼,阿塞拜疆

标签: php codeigniter utf-8 html-entities


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2020-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-26
    • 2021-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多