我听说过PHP6本身会支持unicode,希望能够更轻松地支持多语言。但是,PHP5对unicode和多语言的支持非常弱(即只有一堆专门的字符串函数)。
我想知道在PHP5应用程序中启用unicode和多语言支持的策略是什么?
另外,如何存储翻译,因为PHP5没有像ASP.NET那样的WebResource文件?
答案 0 :(得分:9)
真的不是那么难,但你可能想让你的问题更具体一些。
如果您正在与数据库通信,请确保您的数据库以UTF-8存储数据,与您的数据库的连接是UTF-8 (一个常见的陷阱)。确保在建立连接时运行此命令:
mysql_set_charset('utf8');
对于用户输入,请在表单上设置accept-charset
属性。
<form accept-charset="utf-8">
使用适当的HTTP标头为您的网站提供服务:
header('Content-Type: text/html; charset=utf-8');
或至少为您的网站设置适当的元标记:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
保持您的源代码文件以UTF-8编码。
如果你把所有东西都保存在UTF-8中,你通常不需要担心任何事情。一旦你开始在你的应用程序中混合编码,它就会出现问题。
如果你开始谈论字符串操作,你必须要多加小心。大多数情况下,你会想要使用mb_
字符串函数集,正如你自己指出的那样。
答案 1 :(得分:1)
对于PHP中的应用程序开发,我使用CodeIgniter来处理多个语言文件。它非常强大且易于使用。
以下是指向Language Class
的链接答案 2 :(得分:1)
对于翻译,您可以使用框架,也可以只滚动自己的库。您可以将翻译存储在csv文件中,并使用PHP的fgetcsv()来解析它。可以使用任何电子表格应用程序编辑CSV文件。
例如,您可以查看Zend_Translate(Zend Framework的一部分)的代码。这很容易理解。
答案 3 :(得分:1)
与使用mb_ *函数集相关,在保持兼容性的同时,请参阅mb_string.overload
php.ini指令。
它允许您使用已启用多字节的过载的常规字符串函数。