我在我的應用程序升級從CakePHP的2.7.7至3.1.5的CakePHPUTF8數據庫中的文本不工作cakephp3
舊的應用程序(蛋糕2)與UFT-8
編碼可以正常使用。但在CakePHP 3 UTF-8
從MySQL數據庫來的文本顯示不正確。
我更改了app.php
文件上的編碼,並且還更改了db編碼配置。
從CakePHP 2更新到3之後,錯誤編碼的原因是什麼?
我在我的應用程序升級從CakePHP的2.7.7至3.1.5的CakePHPUTF8數據庫中的文本不工作cakephp3
舊的應用程序(蛋糕2)與UFT-8
編碼可以正常使用。但在CakePHP 3 UTF-8
從MySQL數據庫來的文本顯示不正確。
我更改了app.php
文件上的編碼,並且還更改了db編碼配置。
從CakePHP 2更新到3之後,錯誤編碼的原因是什麼?
如果Unicode符文在某些情況下會再次出現亂碼,請嘗試將字符集更改爲「utf8mb4」。
重要的是要注意,在MySQL上,「utf8」字符集並不實際編碼完整的UTF-8 Unicode符文集。這是出於歷史原因(特別是,當MySQL實現它時,並未完全定義UTF-8)。
「utf8mb4」字符集編碼完整的Unicode符文集,大部分時間實際上是您想要的。
說了這麼多,你必須仔細看看連接的所有字符集設置。 PHP和MySQL有非常挑剔的字符集交互,如果PHP沒有正確地告訴MySQL它想要使用的字符集,那麼即使你已經完全正確地完成了上述所有的事情,事情也會破壞。
有關PHP和MySQL字符的詳細信息設置: http://php.net/manual/en/function.mysql-set-charset.php
這是我最喜歡的資源的「UTF-8」與「utf8mb4」: https://mathiasbynens.be/notes/mysql-utf8mb4
你是對的,但這裏的問題是:我在cakephp 2.7中使用相同的配置(mysql和php),但是使用這種配置,不同的語言文本無法在cakephp3.0上工作 – Mohsin
我更新介紹CakePHP 3.1.5和更低版本是2.7.7 – Mohsin