如何国际化 PHP Web 应用程序?
How to internationalize a PHP Web Application?
我们有一个 PHP 应用程序,专为特定国家/地区设计,具有正常字符。此应用程序具有大多数应用程序中常见的常规模块,例如 register/login 模块、文本编辑器、post 文本、read/write 数据库、搜索模块...
我以前做过,但我不记得将此应用程序转换为国际应用程序的所有步骤,支持所有类型的字符(中文、日文、俄文等)。
我已经开发了一些脚本,以便:
- 将文件的编码更改为 utf-8
- 更改数据库编码(数据库本身、表和 text/varchar 字段)
- 每次创建它的实例时都将数据库设置为 utf-8 (
SET NAMES utf8
)
- 将所有字符串函数更改为 multibyte(例如:
substr()
更改为 mb_substr()
)
- 进入模板并将编码设置为 utf-8 (
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
)
编辑
- 单元测试(感谢 Marcel Djaman)
- 将
accept-charset="UTF-8"
添加到表格中(感谢 Jason Spicer)
- 使用
iconv
(感谢 Robert Pounder)
我还应该采取其他步骤吗?
如何签入具有数千个页面的应用程序?
您真正错过的唯一一件事是 utf8_encoding
/ utf8_decoding
多页。
https://secure.php.net/manual/en/function.utf8-encode.php
https://secure.php.net/manual/en/function.utf8-decode.php
也可能需要使用iconv
:
https://secure.php.net/manual/en/function.iconv.php
注意:
utf8_encode()
只会将 ISO-8859-1 转换为 UTF-8,因此您必须在这种情况下使用 iconv
。
我们有一个 PHP 应用程序,专为特定国家/地区设计,具有正常字符。此应用程序具有大多数应用程序中常见的常规模块,例如 register/login 模块、文本编辑器、post 文本、read/write 数据库、搜索模块...
我以前做过,但我不记得将此应用程序转换为国际应用程序的所有步骤,支持所有类型的字符(中文、日文、俄文等)。
我已经开发了一些脚本,以便:
- 将文件的编码更改为 utf-8
- 更改数据库编码(数据库本身、表和 text/varchar 字段)
- 每次创建它的实例时都将数据库设置为 utf-8 (
SET NAMES utf8
) - 将所有字符串函数更改为 multibyte(例如:
substr()
更改为mb_substr()
) - 进入模板并将编码设置为 utf-8 (
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
)
编辑
- 单元测试(感谢 Marcel Djaman)
- 将
accept-charset="UTF-8"
添加到表格中(感谢 Jason Spicer) - 使用
iconv
(感谢 Robert Pounder)
我还应该采取其他步骤吗?
如何签入具有数千个页面的应用程序?
您真正错过的唯一一件事是 utf8_encoding
/ utf8_decoding
多页。
https://secure.php.net/manual/en/function.utf8-encode.php
https://secure.php.net/manual/en/function.utf8-decode.php
也可能需要使用iconv
:
https://secure.php.net/manual/en/function.iconv.php
注意:
utf8_encode()
只会将 ISO-8859-1 转换为 UTF-8,因此您必须在这种情况下使用 iconv
。