2015-11-30 81 views
0

我在我的應用程序升級從CakePHP的2.7.7至3.1.5的CakePHPUTF8數據庫中的文本不工作cakephp3

舊的應用程序(蛋糕2)與UFT-8編碼可以正常使用。但在CakePHP 3 UTF-8從MySQL數據庫來的文本顯示不正確。

我更改了app.php文件上的編碼,並且還更改了db編碼配置。

從CakePHP 2更新到3之後,錯誤編碼的原因是什麼?

+0

我更新介紹CakePHP 3.1.5和更低版本是2.7.7 – Mohsin

回答

0

如果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

+0

你是對的,但這裏的問題是:我在cakephp 2.7中使用相同的配置(mysql和php),但是使用這種配置,不同的語言文本無法在cakephp3.0上工作 – Mohsin