您好,匿名用户
随意问技术百科期待您的加入

Symfony2中文支持怎么样呀?

+1 投票

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

用户头像 提问 2012年 12月1日 @ Janna 下士 (667 威望)
分享到:

1个回答

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

用户头像 回复 2012年 12月1日 @ Draven 上等兵 (325 威望)
选中 2012年 12月1日 @Janna
提一个问题:

相关问题

+1 投票
1 回复 116 阅读
0 投票
0 回复 25 阅读
0 投票
0 回复 26 阅读
0 投票
1 回复 37 阅读
0 投票
1 回复 42 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...