我最近将一个网站从运行 apache 2 的专用 ubuntu 服务器迁移到运行 nginx 的专用 debian 6 服务器。
这个网站使用的是 CakePHP 2.0 + ichikaway 的 mongodb 插件(所以使用 MongoDB)
由于我更改了服务器,当我尝试使用“français”或“èéï”等特殊字符保存“标签”子文档时,我收到了一个奇怪的通知。
它适用于其他控制器/模型/集合(例如,当我使用特殊字符保存新评论时)。
我已经强制 nginx 使用 utf-8,我所有的网站页面都有元字符集 utf-8,所有 .php(和 .ctp)脚本都以 utf-8 编码。我还尝试强制 utf8_encode() 和 utf8_encode(utf8_decode()) (是的,这很糟糕......)字符串错误得到了同样的错误。
这是通知:(并注意文档未保存)
Notice (1024): non-utf8 string: fran��ais [APP/Plugin/Mongodb/Model/Datasource/MongodbSource.php, line 715]
和上下文:
MongodbSource::update() - APP/Plugin/Mongodb/Model/Datasource/MongodbSource.php, line 715
Model::save() - CORE/Cake/Model/Model.php, line 1614
FiltersController::edit() - APP/Plugin/Administration/Controller/FiltersController.php, line 137
ReflectionMethod::invokeArgs() - [internal], line ??
Controller::invokeAction() - CORE/Cake/Controller/Controller.php, line 473
Dispatcher::_invoke() - CORE/Cake/Routing/Dispatcher.php, line 107
Dispatcher::dispatch() - CORE/Cake/Routing/Dispatcher.php, line 89
[main] - APP/webroot/index.php, line 96
我祈祷“堆栈溢出之神”来拯救我,我真的不知道该去哪里让它像以前一样工作了:(
谢谢你的阅读。