首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CakePHP和MongoDB :非utf8 8字符串通知

CakePHP和MongoDB :非utf8 8字符串通知
EN

Stack Overflow用户
提问于 2012-06-26 14:30:58
回答 3查看 1.2K关注 0票数 0

最近,我将一个网站从运行apache 2的专用ubuntu服务器迁移到运行nginx的专用debian 6服务器。

这个网站使用的是CakePHP 2.0 + ichikaway的mongodb插件 (所以使用MongoDB)

由于我更改了服务器,所以当我试图保存带有特殊字符(如“fran ais”或“èeéa”)的“标记”子文档时,会有一个奇怪的通知。

它适用于其他控制器/模型/集合(例如,当我保存带有特殊字符的新注释时)。

我已经强迫nginx使用utf-8,我所有的网站页面都有元字符集utf-8,所有的.php (和.ctp)脚本都是用utf-8编码的。我还试图强迫utf8_encode()和utf8_encode(utf8_decode()) (是的,这很糟糕.)字符串错误也有相同的错误。

这里是通知: (注意文档没有保存)

代码语言:javascript
运行
复制
Notice (1024): non-utf8 string: fran��ais [APP/Plugin/Mongodb/Model/Datasource/MongodbSource.php, line 715]

与上下文:

代码语言:javascript
运行
复制
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

我祈祷“堆积如山的上帝”来救我,我真的不知道该去哪里让它像以前一样工作了。

谢谢你的阅读。

EN

Stack Overflow用户

发布于 2013-05-06 22:36:13

我解决了这个问题,增加了以下几行:

代码语言:javascript
运行
复制
for($i=0; $i<=count($values)-1; $i++){
            if(is_string($values[$i]))
                $values[$i] = utf8_encode($values[$i]);
        }

就在../Pluggin/Mongodb/Model/DataSource/MongodbSource.php之后

代码语言:javascript
运行
复制
if (!$this->isConnected()) {
            return false;
        }

在更新和创建函数中

票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11209673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档