mongoDB с нестандартными символами UTF-8 - PullRequest
0 голосов
/ 21 сентября 2011

У меня возникла проблема при вставке необычных символов в MongoDB.

Символы: é è í ì à à ... etc

в основном символы, которые в основном используются в латинских странах.

когда я вставляю его скриптом (так как, если я пытаюсь сделать это в консоли, он отвечает «символ не-utf-8»), он делает это хорошо, ну, он добавляет его в коллекцию, но с некоторыми странными символами.

если я найду, скажем, «Ола», и у меня будет поле, в котором будет произведен поиск с помощью «Ола», но с этими странными символами, оно отвечает на данные в поле, которое я хочу, просто отлично ... однако, если в этом поле есть какой-то символ, который не является вашим стандартным английским чартом, он отображает что-то вроде этого:

�til?

Есть ли способ, которым я могу справиться с этим?

Я использую сервер Websphere Portal, выводит файл PortletView в UTF-8, сервлет обрабатывает введенные данные для кодирования их в UTF-8 при отправке в базу данных для запроса, а также обрабатывает данные, которые он получает из БД в UTF-8 (просто чтобы быть уверенным).

Заранее спасибо.

1 Ответ

1 голос
/ 21 сентября 2011

Убедитесь, что фильтр сервлета не вызывает запрос на использование неправильной кодировки символов. Это может быть вызвано вызовом одного из методов getParameterXXX() семейства ServletRequest перед установкой кодировки символов запроса на UTF-8.

В спецификации сервлета указано, что по умолчанию используется ISO8859-1. См. SRV.3.9 Запрос кодировки данных .

Также убедитесь, что в ответе используется правильный тип содержимого (с кодировкой). Как указано выше в комментарии:

String contentType= "text/html;charset=UTF-8";
response.setContentType(contentType);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...