我正在设置一个新服务器,并希望在我的 Web 应用程序中完全支持 UTF-8。我过去曾在现有服务器上尝试过此操作,但似乎总是最终不得不回退到 ISO-8859-1。这...
我正在设置一个新服务器,并希望在我的 Web 应用程序中完全支持 UTF-8。我过去曾在现有服务器上尝试过此操作,但似乎总是最终不得不回退到 ISO-8859-1。
我到底需要在哪里设置编码/字符集?我知道我需要配置 Apache、MySQL 和 PHP 才能做到这一点 — 是否有一些我可以遵循的标准清单,或者可以排除不匹配发生的位置故障?
这是用于新的 Linux 服务器,运行 MySQL 5、PHP 5 和 Apache 2。
我要补充的是,这些令人惊叹的答案强调以 UTF-8 编码保存文件,我注意到浏览器接受此属性,而不是将 UTF-8 设置为代码编码。任何像样的文本编辑器都会向您显示这一点。例如, Notepad++ 有一个文件编码菜单选项,它会显示当前编码并允许您更改它。对于我的所有 PHP 文件,我都使用不带 8 的 UTF- BOM .
前段时间,有人让我为别人设计的 PHP 和 MySQL 应用程序添加 UTF-8 支持。我注意到所有文件都是用 ANSI 编码的,所以我不得不使用 iconv 转换所有文件,将数据库表更改为使用 UTF-8 字符集和 utf8_general_ci 排序,在连接后将“SET NAMES utf8”添加到数据库抽象层(如果使用 5.3.6 或更早版本。否则,您必须在连接字符串中使用 charset=utf8)并更改字符串函数以使用等效的 PHP 多字节字符串函数。