Подтвердить что ты не робот

Специальные символы MongoDB

Я ввел файл init в MongoDB:

db.User.insert({ "_id" : ObjectId("5589929b887dc1fdb501cdba"), "_class" : "com.smartinnotec.aposoft.dao.domain.User", "title" : "DI.", ... "address" : { "_id" : null, ... "country" : "Österreich" }})

И если я вызываю эту запись с помощью db.User.find(), я получаю следующее:

{ "_id" : ObjectId("5589929b887dc1fdb501cdba"), "_class" : "com.smartinnotec.aposoft.dao.domain.User", "title" : "DI.", ... "address" : { "_id" : null, ... "country" : "�sterreich" } }

Слово со специальными символами "½½sterreich" неверно.

Кто-нибудь знает, что я могу сделать в mongodb, чтобы решить эту проблему?

4b9b3361

Ответ 1

Угадайте, что вы можете использовать HTML-коды внутри строки

Код

Вы можете использовать и ouml;, чтобы сохранить spl char в db.

db.User.insert({ "_id" : ObjectId("5589929b887dc1fdb501cdba"), "_class" : "com.smartinnotec.aposoft.dao.domain.User", "title" : "DI.", ... "address" : { "_id" : null, ... "country" : "österreich" }})

И при вызове этой записи с помощью db.User.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

Надеюсь, что это поможет.

Ответ 2

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, даже пользовательский.