Специальные символы в 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-коды внутри строки

код:

можно использовать &ouml ; для сохранения символа 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, даже пользовательский.