Специальные символы в MongoDB
я вставил init-файл в MongoDB:
db.User.insert({ "_id" : ObjectId("5589929b887dc1fdb501cdba"), "_class" : "com.smartinnotec.aposoft.dao.domain.User", "title" : "DI.", ... "address" : { "_id" : null, ... "country" : "Österreich" }})
и если я вызову эту запись с db.Пользователь.find (), чем я получаю следующее:
{ "_id" : ObjectId("5589929b887dc1fdb501cdba"), "_class" : "com.smartinnotec.aposoft.dao.domain.User", "title" : "DI.", ... "address" : { "_id" : null, ... "country" : "�sterreich" } }
слова со специальными символами " * ½sterreich¿не правильно.
кто-нибудь знает, что я могу сделать в mongodb, чтобы решить эту проблему?
2 ответов
угадайте, чтобы вы могли использовать HTML-коды внутри строки
код:
можно использовать ö ; для сохранения символа spl в db.
db.User.insert({ "_id" : ObjectId("5589929b887dc1fdb501cdba"), "_class" : "com.smartinnotec.aposoft.dao.domain.User", "title" : "DI.", ... "address" : { "_id" : null, ... "country" : "österreich" }})
и при вызове этой записи с помощью db.Пользователь.find (), вы получите следующее:
{ "_id" : ObjectId("5589929b887dc1fdb501cdba"), "_class" : "com.smartinnotec.aposoft.dao.domain.User", "title" : "DI.", ... "address" : { "_id" : null, ... "country" : "Österreich" } }
ссылка:
http://www.starr.net/is/type/htmlcodes.html
заменить несколько символов в строке в в JavaScript
надеюсь, что это помогает.
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 ("Österreich", " UTF-8", "ISO-8859-1");
utf8_encode(utf8_decode($string))
вы всегда должны убедиться, что ваши строки кодируются UTF-8, даже пользовательский.