【问题标题】:Encoding problems using PHP Gettext使用 PHP Gettext 的编码问题
【发布时间】:2013-05-04 17:39:58
【问题描述】:

我正在尝试在我的 php 项目中使用 Gettext。

但是,我有一些编码问题。如果我在 .mo 文件中使用 UTF-8 编码并使用 “bind_textdomain_codeset('消息','UTF-8');” 我在浏览器中看不到重音符号。在 Firefox 中,为了看到它们正常,我必须将浏览器编码更改为 UTF-8(它不是默认编码)。由于我不能指望我的访问者更改他们的浏览器编码,我该怎么办?

我还尝试将所有内容都更改为 ISO-8859-15,虽然重音可以正常工作(即使使用浏览器默认编码),但 € 符号不起作用。而且我也读过在使用像俄语这样的语言时存在问题,所以这似乎不是正确的方法。

我应该如何进行?

谢谢你:)

【问题讨论】:

    标签: php encoding character-encoding gettext


    【解决方案1】:

    您应该告知浏览器您发送的页面是用 UTF-8 编码的。在实际输出任何内容之前使用header 执行此操作:

    header('Content-Type: text/html; charset=utf-8');
    

    当然,这假设页面 首先是 UTF-8。

    一般来说,您永远不能忽视的一条法则是,您页面中的所有内容都必须采用相同的编码(这就是您在声明 Content-Type 时使用的编码)。

    如果内容的所有来源(例如,您的硬编码内容、来自gettext 的内容、来自数据库的内容)都在该编码中,那么一切都很好。如果不是,那么您必须手动将所有来自不同来源的内容转换为页面编码,这可以通过iconvmb_convert_encoding 实现。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-26
      • 2010-12-15
      • 1970-01-01
      • 2011-02-18
      • 1970-01-01
      相关资源
      最近更新 更多