我在將數據插入到mongodb時遇到了問題。Mongo utf-8異常處理
$name = $_REQUEST['name']; // "Iñtërnâtiônàlizætiøn";
$db->table->insert(
array('name' => $name)
);
這讓蒙戈異常 「致命錯誤:未捕獲的異常 'MongoException' 有消息「非UTF8字符串:......」
$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',但蒙戈異常仍occures。
當心[爲'mb_convert_encoding'的參數的順序(HTTP ://php.net/manual/fr/function.mb-convert-encoding.php),您將*從* UTF-8 *轉換爲* ISO。 – 2014-07-11 12:21:56