我在向 mongodb 插入数据时遇到问题。
$name = $_REQUEST['name']; // "Iñtërnâtiônàlizætiøn";
$db->table->insert(
array('name' => $name)
);
这给出了 mongo 异常“致命错误:未捕获的异常 'MongoException' 和消息 'non-utf8 string:....”
$name = mb_convert_encoding($_REQUEST['name'], 'ISO-8859-1', 'UTF-8');
有助于解决问题。但是有没有办法强制php将所有传入的数据设置为utf-8,所以我不需要对每个数据使用mb_convert_encoding?
我试过了
mb_internal_encoding('UTF-8');
iconv_set_encoding('input_encoding', 'UTF-8');
iconv_set_encoding('internal_encoding', 'UTF-8');
这些都没有帮助。
甚至
mb_detect_encoding($_REQUEST['title']);
给出:'UTF-8',但 mongo 异常仍然发生。