MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

MongoDB PHP UTF-8 sự cố

JSON và BSON chỉ có thể mã hóa / giải mã các chuỗi UTF-8 hợp lệ, nếu dữ liệu của bạn (đầu vào được bao gồm) không phải là UTF-8, bạn cần chuyển đổi nó trước khi chuyển nó sang bất kỳ hệ thống phụ thuộc JSON nào, như sau:

$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

Cá nhân tôi thích tùy chọn đầu tiên hơn, hãy xem iconv() trang hướng dẫn sử dụng. Các lựa chọn thay thế khác bao gồm:

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

Bạn phải luôn đảm bảo các chuỗi của mình được mã hóa UTF-8, ngay cả những chuỗi do người dùng gửi, tuy nhiên vì bạn đã đề cập rằng bạn đang di chuyển từ MySQL sang MongoDB, bạn đã thử xuất cơ sở dữ liệu hiện tại của mình sang CSV và sử dụng các tập lệnh nhập đi kèm chưa với Mongo? Họ nên xử lý việc này ...

CHỈNH SỬA: Tôi đã đề cập rằng BSON chỉ có thể xử lý UTF-8, nhưng tôi không chắc liệu điều này có chính xác không, tôi có một ý tưởng mơ hồ rằng BSON sử dụng UTF-16 hoặc UTF-32 để mã hóa / giải mã dữ liệu, nhưng tôi không thể kiểm tra. bây giờ.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Lỗi Mongoose Truyền tới ObjectId không thành công cho giá trị XXX tại đường dẫn _id là gì?

  2. Meteor, One to Many Relationship &chỉ thêm trường vào bộ sưu tập phía máy khách trong Xuất bản?

  3. Truyền từ con trỏ mongodb tới Phản hồi nhanh trong node.js

  4. Cơ sở dữ liệu đám mây tự làm trên Amazon Web Services - Sách trắng mới

  5. Các tính năng của MongoDB trong ClusterControl 1.4