PHP for Python程序员:UTF-8问题

时间:2012-06-03 06:52:37

标签: php python mysql apache utf-8

我有一个开源PHP网站,我打算修改/翻译(主要是常量字符串),以便日本用户可以使用它。

原始代码是PHP + MySQL + Apache,用英文charset=utf-8

编写

我想改变,例如,单词" login"进入日本同行"ログイン"等

我不确定是否必须以utf-8格式保存PHP代码(就像Python一样)?

我只有Python经验,所以我应该注意哪些其他问题?

3 个答案:

答案 0 :(得分:2)

如果它在文件中,那么是的,您需要将文件保存为UTF-8。

如果它在数据库中,则不需要将PHP文件保存为UTF-8。

在PHP中,字符串基本上只是二进制blob。您需要将文件保存为UTF-8,以便读入正确的字节。理论上,如果您将原始字节保存在ANSI文件中,它仍然会正确输出到浏览器,只是您的编辑器不会显示它正确地说,你会冒着编辑错误地操纵它的风险。

此外,在处理非ANSI字符串时,您需要小心使用字节操作函数的多字节版本(例如str_replace可能会使用utf-8字符串)。

答案 1 :(得分:0)

如果文件包含UTF-8字符,则使用UTF-8保存。否则,您可以以任何格式保存它。您应该注意的一点是PHP解释器不支持UTF-8字节顺序标记,因此请确保在没有它的情况下保存它。

答案 2 :(得分:0)

对不起,您在使用Python后必须使用PHP。

PHP没有字符集的概念:所有字符串都是二进制的,即使在解析的php代码中也是如此,因此如果在php字符串中包含UTF-8多字节字符,请确保代码文件中的字节为UTF-8字节

您需要在应用程序的所有级别extremely careful with the use of string functions。您还需要确保您的MySQL连接设置为使用UTF-8(在更高版本的PDO中使用SET NAMEScharset dsn参数),并且您的mysql字符串列数据类型使用utf-8存储