Symfony2中文支持怎么样呀?
黄舟
黄舟 2017-05-16 16:46:19
0
1
419

本来是想用ZendFramework2的,可是ZF2对中文的支持太差了,很多时候中文都会出现乱码,想了解一下Symfony2会不会经常的中文乱码呢?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(1)
阿神

Symfony 2的中文支持很好,实际上也没有什么特殊之处,如果能遵循最佳实践,不会出现任何问题。

首先是PHP的charset,SF2默认采用的就是UTF-8:

  • 2.0分支的默认配置(/app/config/config.yml)是UTF-8。
  • 2.1分支索性去掉了这个配置项,如果不打算采用UTF-8,需要在AppKernel里重载getCharset()方法来指定。

然后是各类数据源的字符集,如关系型数据库,NoSQL,外部数据文件等:

  • 如果用Doctrine或者Propel等第三方库,都有相应的参数,Doctrine默认是UTF-8。
  • 如果自己做数据接口封装,拿MySQL来举例,建表需要确认数据库字符集为UTF-8,创建连接时也需要指定字符集;外部文件如csv等,需要自己做转换后进行操作;较新的NoSQL一般都默认用UTF-8,所以不用操心。

视图层:

  • 如果你把语言项全部写在模板里,需要保证模板文件的编码(也可以视作外部数据文件)是正确的。
  • 如果输出HTML或其他标记语言内容,还需要确保在语义上也指定了正确的字符集(如HTML的charset)。
  • 如果用SF2自带的Translations模块(可以用yaml,xml或gettext),需要指定正确的locale。

总结地说,就是要确保所有的代码文件和运行参数都是相同的编码(UTF-8)。

至于确保代码文件都是正确的字符集,用VCS的hook可以很好的处理,比如在提交文件时检查文件的字符集(pre-commit),如果不正确,则拒绝提交。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!