MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Проблеми с MongoDB PHP UTF-8

JSON и BSON могат да кодират/декодират само валидни UTF-8 низове, ако вашите данни (включени входни данни) не са UTF-8, трябва да ги конвертирате, преди да ги предадете на която и да е зависима от JSON система, както следва:

$string = iconv('UTF-8', 'UTF-8//IGNORE', $string); // or
$string = iconv('UTF-8', 'UTF-8//TRANSLIT', $string); // or even
$string = iconv('UTF-8', 'UTF-8//TRANSLIT//IGNORE', $string); // not sure how this behaves

Лично аз предпочитам първата опция, вижте iconv() страница наръчник. Други алтернативи включват:

  • mb_convert_encoding()
  • utf8_encode(utf8_decode($string))

Винаги трябва да се уверите, че вашите низове са кодирани с UTF-8, дори тези, изпратени от потребителя, но тъй като споменахте, че мигрирате от MySQL към MongoDB, опитали ли сте да експортирате текущата си база данни в CSV и да използвате скриптовете за импортиране, които идват с Монго? Те трябва да се справят с това...

РЕДАКТИРАНЕ: Споменах, че BSON може да обработва само UTF-8, но не съм сигурен дали това е точно вярно, имам бегла идея, че BSON използва UTF-16 или UTF-32 за кодиране/декодиране на данни, но не мога да проверя сега.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Преименувайте поле в резултатите от заявката в MongoDB

  2. Избягвайте общото ограничение от 16MB

  3. Как да посочите поръчка или сортиране с помощта на C# драйвера за MongoDB?

  4. MongoSocketReadException:Преждевременно достигнат край на потока (след период на неактивност)

  5. Услугата mongodb не се стартира