MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Masalah MongoDB PHP UTF-8

JSON dan BSON hanya dapat menyandikan / mendekode string UTF-8 yang valid, jika data Anda (input yang disertakan) bukan UTF-8, Anda perlu mengonversinya sebelum meneruskannya ke sistem yang bergantung pada JSON, seperti ini:

$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

Secara pribadi saya lebih suka opsi pertama, lihat iconv() halaman manual. Alternatif lain termasuk:

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

Anda harus selalu memastikan string Anda dikodekan UTF-8, bahkan yang dikirim oleh pengguna, namun karena Anda menyebutkan bahwa Anda bermigrasi dari MySQL ke MongoDB, sudahkah Anda mencoba mengekspor database Anda saat ini ke CSV dan menggunakan skrip impor yang datang dengan Mongo? Mereka harus menangani ini...

EDIT: Saya menyebutkan bahwa BSON hanya dapat menangani UTF-8, tetapi saya tidak yakin apakah ini benar, saya memiliki gagasan yang kabur bahwa BSON menggunakan UTF-16 atau UTF-32 untuk menyandikan / mendekode data, tetapi saya tidak dapat memeriksa sekarang.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. 3 Cara Mendapatkan Minggu dari Kencan di MongoDB

  2. Buat Pengguna Super di mongo

  3. Cara mengaktifkan logging untuk Mongoose dan driver MongoDB Node.JS

  4. mengubah database dari mysql ke mongoDb

  5. apollostack/graphql-server - cara mendapatkan bidang yang diminta dalam kueri dari resolver