MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Problemy z MongoDB PHP UTF-8

JSON i BSON mogą kodować / dekodować tylko prawidłowe ciągi znaków UTF-8, jeśli twoje dane (włączone dane wejściowe) nie są w UTF-8, musisz je przekonwertować przed przekazaniem do dowolnego systemu zależnego od JSON, na przykład:

$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

Osobiście wolę pierwszą opcję, zobacz iconv() strony podręcznika. Inne alternatywy to:

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

Zawsze powinieneś upewnić się, że twoje łańcuchy są zakodowane w UTF-8, nawet te przesłane przez użytkowników, jednak skoro wspomniałeś, że migrujesz z MySQL do MongoDB, czy próbowałeś wyeksportować bieżącą bazę danych do CSV i użyć skryptów importu, które są z Mongo? Powinni się tym zająć...

EDYTUJ: Wspomniałem, że BSON obsługuje tylko UTF-8, ale nie jestem pewien, czy to dokładnie prawda, mam niejasny pomysł, że BSON używa UTF-16 lub UTF-32 do kodowania / dekodowania danych, ale nie mogę sprawdzić teraz.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak używać Node.js do nawiązywania połączenia tunelowego SSH z bazą danych MongoDB?

  2. 2 sposoby na odkrycie indeksu w MongoDB

  3. Jak przeprowadzić wyszukiwanie pełnotekstowe w MongoDB?

  4. MongoDB / Meteor / Eksportuj MONGO_URL do wdrożonych aplikacji

  5. Jak wpisać wiele wierszy do listy rozdzielanej przecinkami w SQL?