代码之家  ›  专栏  ›  技术社区  ›  ganjan

使用gettext和smarty获取特殊字符的时间

  •  3
  • ganjan  · 技术社区  · 14 年前

    我正在使用 $encoding = 'utf-8'; 在gettext和我的html代码中 <meta charset="utf-8"> . 我也在我的.po文件中设置了utf-8,但是当我写的时候我还是得到了!有什么问题吗?

    2 回复  |  直到 14 年前
        1
  •  4
  •   Community CDub    5 年前

    让我们看看你提到的值是如何在字节级别上的。

    我复制了 æøå � 从你的头衔。原因 Unicode Character 'REPLACEMENT CHARACTER' (U+FFFD)

    在UTF-8编码的脚本中,这将给出:

    <?php
    $s = 'æøå';
    $s2 = '�';
    
    echo "s iso-8859-1 ", @reset(unpack("H*", mb_convert_encoding($s, "ISO-8859-1", "UTF-8"))), "\n";
    echo "s2 win-1252  ", @reset(unpack("H*", mb_convert_encoding($s, "WINDOWS-1252", "UTF-8"))), "\n";
    
    s iso-8859-1 e6f8e5
    s2 win-1252  e6f8e5
    

    所以字节表示匹配。问题是当你写作的时候 或者:

    • 你用的是ISO-8859-1,而不是UTF-8。检查文本编辑器。
    • 该值正在从UTF-8转换为ISO-8859-1(不太可能)
        2
  •  3
  •   Julio    14 年前

    bind_textdomain_代码集($domain,“UTF-8”);

    否则你会得到这个角色