Программа принимает комментарий и сохраняет его. База данных сохраняет значение правильно (я могу скопировать и вставить его на страницу смайликов, и оно отображается правильно). Строка, которую я вижу в отладчике в запросе postComment и в ответе getAllComments, одинакова, но она отправляет {0xED, 0xA0, 0xBD, 0xED, 0xB8, 0x80} вместо {0xF0, 0x9F, 0x98, 0x80} и показывает в виде нескольких символов вместо 1. Если я установлю кодировку UnicodeBig, смайлики появятся в ответе, но нам нужно использовать UTF-8
String jsonString = jsonMapper.toJson(jsonResponse);
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().println(jsonString);
Нужно ли мне что-то делать с этими строками, прежде чем система закодирует utf8? используемые библиотеки
json-simple-1.1 (текущая версия 1.1.1) jackson-core-2.2.3 (текущая версия 2.6)
Спасибо.
{ 0xF0, 0x9F, 0x98, 0x80 }
Мне это не кажется смайликом.U+00F0
- латинская строчная буква Eth - ð. Остальные — это управляющие символы Unicode. - person gilly3   schedule 17.06.2015U+1f600
в виде строки в JSON —"\uD83D\uDE00"
. - person gilly3   schedule 17.06.2015