在PHP5中支持unicode和多语言的策略

osc*_*kuo 4 php unicode

我听说过PHP6本身会支持unicode,希望能够更轻松地支持多语言.但是,PHP5对unicode和多语言(即只是一堆专门的字符串函数)的支持非常弱.

我想知道你在PHP5应用程序中启用unicode和多语言支持的策略是什么?

另外,你如何存储翻译,因为PHP5没有像ASP.NET这样的WebResource文件呢?

dec*_*eze 9

这真的不是那么难,但你可能想让你的问题更具体一些.

如果您正在与数据库通信,请确保您的数据库以UTF-8存储数据,并且与数据库连接是UTF-8(一个常见的陷阱).确保在建立连接时运行此命令:

mysql_set_charset('utf8');
Run Code Online (Sandbox Code Playgroud)

对于用户输入,请accept-charset在表单上设置属性.

<form accept-charset="utf-8">
Run Code Online (Sandbox Code Playgroud)

使用适当的HTTP标头为您的网站提供服务:

header('Content-Type: text/html; charset=utf-8');
Run Code Online (Sandbox Code Playgroud)

或者至少为您的网站设置适当的元标记:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Run Code Online (Sandbox Code Playgroud)

保持源代码文件以UTF-8编码.

如果你把所有东西都保存在UTF-8中,你通常不需要担心任何事情.一旦你开始在整个应用程序中混合编码,它就会出现问题.

如果你开始谈论字符串操作当然,你将不得不采取更多的关注.大多数情况下,你会想要使用mb_字符串函数集,就像你自己指出的那样.

  • +1.为了完整起见,您可能还想在这个答案中提到`htmlentities()`.使用UTF-8时,应按如下方式使用:`htmlentities($ str,ENT_COMPAT,'UTF-8');`请参阅http://stackoverflow.com/questions/724926/converting-fractions-to-html -entities/799876#799876获取更多信息. (3认同)