How about Symfony2 Chinese support?
黄舟
黄舟 2017-05-16 16:46:19
0
1
318

Originally I wanted to use ZendFramework2, but ZF2’s support for Chinese is too poor. Chinese characters often appear garbled. I would like to know if Symfony2 often causes garbled Chinese characters?

黄舟
黄舟

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

reply all(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),如果不正确,则拒绝提交。

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!