Symfony2中文支援怎麼樣呀?
黄舟
黄舟 2017-05-16 16:46:19
0
1
440

本來是想用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),如果不正確,則拒絕提交。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板