我正在设置一个新服务器,并希望在我的 Web 应用程序中完全支持 UTF-8。我过去曾在现有服务器上尝试过此操作,但似乎总是最终不得不回退到 ISO-8859-1。这...
我正在设置一个新服务器,并希望在我的 Web 应用程序中完全支持 UTF-8。我过去曾在现有服务器上尝试过此操作,但似乎总是最终不得不回退到 ISO-8859-1。
我到底需要在哪里设置编码/字符集?我知道我需要配置 Apache、MySQL 和 PHP 才能做到这一点 — 是否有一些我可以遵循的标准清单,或者可以排除不匹配发生的位置故障?
这是用于新的 Linux 服务器,运行 MySQL 5、PHP 5 和 Apache 2。
我想对 chazomaticus 的出色回答 :
也不要忘记 META 标签(像这样,或者 它的 HTML4 或 XHTML 版本 ):
<meta charset="utf-8">
这看起来微不足道,但 IE7 之前曾给我带来过这个问题。
我做的一切都是正确的;数据库、数据库连接和 Content-Type HTTP 标头都设置为 UTF-8,并且它在所有其他浏览器中都运行良好,但 Internet Explorer 仍然坚持使用“西欧”编码。
原来是页面缺少 META 标签。添加该标签后问题就解决了。
W3C 实际上有一个相当大的 部分专门用于 I18N 。他们有许多与此问题相关的文章 - 描述了 HTTP,(X)HTML 和 CSS 方面的问题:
他们建议同时使用 HTTP 标头和 HTML 元标记(或者在 XHTML 作为 XML 的情况下使用 XML 声明)。