我正在尝试为我的php项目开始使用Gettext。
但是,我有一些编码问题。如果我在.mo文件中使用UTF-8编码并使用 “bind_textdomain_codeset('messages','UTF-8');” 我没有在浏览器中正确看到重音符号。在Firefox中,为了看到它们,我必须将浏览器编码更改为UTF-8(它不是默认编码)。由于我不能指望我的访问者改变他们的浏览器编码,我该怎么办?
我也尝试将所有内容更改为ISO-8859-15,虽然重音符号工作正常(即使使用浏览器默认编码),但是符号不起作用。而且我也读到使用像俄语这样的语言有问题,所以它似乎不是正确的方法。
我该怎么办?
谢谢:)
答案 0 :(得分:0)
您应该指示浏览器您发送的页面是以UTF-8编码的。在实际输出任何内容之前使用header
执行此操作:
header('Content-Type: text/html; charset=utf-8');
当然,这假设页面首先是,以UTF-8开头。
一般而言,您永远不会忽视的一条法律是,您网页中的所有内容必须采用相同的编码(这是您在声明内容类型时使用的编码)。
如果内容的所有来源(例如您的硬编码内容,来自gettext
的内容,来自数据库的内容)都在该编码中,那么一切都很好。如果没有,那么您必须手动转换来自与页面编码不同的来源的所有内容,这可以通过iconv
或mb_convert_encoding
进行。