0

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

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

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

我应该如何进行?

谢谢 :)

4

1 回答 1

1

你应该告诉浏览器你发送的页面是用 UTF-8 编码的。header在实际输出任何内容之前使用:

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

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

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

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

于 2013-05-04T17:49:00.880 回答