是否有可能编写一个使用Unicode的优秀PHP应用程序?

时间:2009-05-01 13:18:38

标签: php python web-applications unicode

我的下一个Web应用程序项目将广泛使用Unicode。我通常使用PHP和CodeIgniter,但Unicode不是PHP的优点之一。

有没有可以帮助我在PHP中使用Unicode的PHP工具?

或者我应该借此机会研究Python等替代方案吗?

3 个答案:

答案 0 :(得分:4)

一旦确保在进入和退出时进行编码和解码,PHP就可以处理unicode。如果要存储在数据库中,请确保html页面,Web服务器,编辑器和数据库之间的语言编码和字符集映射匹配。

如果整个应用程序在任何地方使用UTF-8,则无需解码。您需要解码的唯一时间是在另一个不在Web上的字符集中输出数据。输出html时,可以使用

htmlentities($var, ENT_QUOTES, 'UTF-8');

获得正确的输出。在大多数情况下,标准函数会破坏字符串。邮件功能也是如此。

http://developer.loftdigital.com/blog/php-utf-8-cheatsheet是在UTF-8中工作的非常好的资源

答案 1 :(得分:1)

PHP 6的一个主要功能将与UNICODE支持紧密集成。

在PHP 5中实现UTF-8。 由于PHP字符串是面向字节的,因此Unicode文本唯一实用的编码方案是UTF-8。技巧[来自PHp Architect杂志]:

  • 以UTF-8
  • 呈现HTML页面
  • 将PHP脚本转换为UTF-8
  • 将网站内容,后端数据库等转换为UTF-8
  • 确保没有PHP函数损坏UTF-8文本
  

查看http://www.gravitonic.com/talks/
PHP UTF 8作弊Sheet

答案 2 :(得分:0)

PHP主要不知道chrasets并将字符串视为字节流。这真的不是什么问题,但你必须自己做一些工作。

一般的经验法则是你应该到处使用相同的字符集。如果你到处都使用UTF-8,那么你就是99%。只要确保你没有混合字符集,因为它变得非常复杂。唯一不能正确使用UTF-8的是字符串操作,它需要在字符级别上操作。例如。 strlensubstr等。您应该使用支持UTF-8的版本来代替这些版本。 multibyte-string extension为您提供了这一点。

有关您需要确保字符集设置正确的地方的清单,请查看:

http://developer.loftdigital.com/blog/php-utf-8-cheatsheet

有关详细信息,请查看:

http://www.phpwact.org/php/i18n/utf-8