$database->find(array('value'=>'İngiltere'));
上有MongoDB類沒有find()
方法。是$database
a MongoCollection實例嗎?
您可能會遇到UTF-8編碼問題(請參閱:this answer進行相關討論),但共享的所有三個字符串似乎都已正確編碼。使用UTF-8字符串時,不應該插入和查詢所述值。考慮下面的代碼示例:
$values = ['İngiltere', 'İtalya', 'Şampiyona'];
$m = new MongoClient();
$c = $m->test->foo;
$c->drop();
foreach ($values as $value) {
printf("Testing value: %s\n", $value);
printf("Detected encoding: %s\n", mb_detect_encoding($value));
$c->insert(['x' => $value]);
var_dump($c->findOne(['x' => $value]));
echo "\n";
}
這會產生在我的系統上的輸出如下:
Testing value: İngiltere
Detected encoding: UTF-8
array(2) {
'_id' =>
class MongoId#6 (1) {
public $$id =>
string(24) "5213d027e84df17727ca7985"
}
'x' =>
string(10) "İngiltere"
}
Testing value: İtalya
Detected encoding: UTF-8
array(2) {
'_id' =>
class MongoId#5 (1) {
public $$id =>
string(24) "5213d027e84df17727ca7986"
}
'x' =>
string(7) "İtalya"
}
Testing value: Şampiyona
Detected encoding: UTF-8
array(2) {
'_id' =>
class MongoId#4 (1) {
public $$id =>
string(24) "5213d027e84df17727ca7987"
}
'x' =>
string(10) "Şampiyona"
}
我想我的問題是關於我的插入。我試過你的代碼,它工作。但用我的價值觀,這是行不通的。 在插入之前,我應該如何轉換我的值utf-8? – user2396307
我從本站獲取數據:http://www.stats.betradar.com/s4/gismo.php?&html=1&id=1828&language=tr&clientid=35&child=1&childnodeid=1819 我該如何更改此utf -8?解決我的問題? thx回答 – user2396307
我在上面的回覆中鏈接到http://stackoverflow.com/a/5920748/162228。這裏有一些關於在PHP中將字符串編碼爲UTF-8的各種方法的討論。 – jmikola