suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Wie wäre es mit der chinesischen Symfony2-Unterstützung?

Ich wollte ursprünglich ZendFramework2 verwenden, aber die Unterstützung von ZF2 für Chinesisch ist oft unleserlich. Ich möchte wissen, ob Symfony2 oft unleserliche chinesische Schriftzeichen verursacht.

黄舟黄舟2739 Tage vor426

Antworte allen(1)Ich werde antworten

  • 阿神

    阿神2017-05-16 16:48:19

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

    Antwort
    0
  • StornierenAntwort