$database->find(array('value'=>'İngiltere'));
는 MongoDB 클래스에는 find()
방법이 없습니다. $database
은 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 어떻게이 유토피아를 바꿀 수 있는가? -8? 내 문제를 해결하기 위해? 대답은 – user2396307
에 대한 위의 내 대답은 http://stackoverflow.com/a/5920748/162228에 링크 된. PHP에서 문자열을 UTF-8로 인코딩하는 다양한 방법에 대한 논의가 있습니다. – jmikola