Страница 1 из 1

HttpPost -> Servlet -> MS SQL кодировка кирилицы

Добавлено: 01 июл 2014, 09:03
Vovich
Здравствуйте. Помогите разобраться с кодировками. С андроида посредством HttpPost отправляю на сервер (томкат) данные в кирилице,
указываю кодировку:

Код: Выделить всё

httppost.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
на сервере сервлет извлекает данные и инсертует таблицу MS SQL.
В web.xml сервлета прописано:

Код: Выделить всё

<?xml version="1.0" encoding="UTF-8"?>
Кодовая страница базы SQL 1251. Если инсертировать записи сразу - то в таблице вместо букв вопросики. Если пробую преобразовывать в сервлете из UTF-8 в 1251 типа так:

Код: Выделить всё

String newString = new String(oldString.getBytes("UTF-8"), "Cp1251");
получаю кракозябры в базе.
"windows-1251" тоже пробовал - аналогично.
Подскажите как решить проблему.
Спасибо.

Re: HttpPost -> Servlet -> MS SQL кодировка кирилицы

Добавлено: 01 июл 2014, 09:13
altwin
установить кодировку базы, utf8-general-ci если я не ошибаюсь желательно поставить по умолчанию...

Re: HttpPost -> Servlet -> MS SQL кодировка кирилицы

Добавлено: 01 июл 2014, 09:21
Vovich
В базе так сразу кодировку и не поменяеш. Там и другие таблицы есть, ну и соответственно всякие выборки в программах, сортировка и т.д.
Разве что как последний вариант - создать отдельную базу под эту таблицу, а потом перекачивать данные и на лету конвертировать в 1251.

Пробовал новую базу создать с кодировкой UTF-8 - такой нету
:(
таки надо бы в сервлете перекодировать...

Re: HttpPost -> Servlet -> MS SQL кодировка кирилицы

Добавлено: 01 июл 2014, 14:03
Vovich
Нашел решение - нужен еще один сервлет-фильтр
http://www.javable.com/docs/articles/cyrlet/

раздел: "Русские буквы в Servlet-ах."
скопировал пример фильтра 1 в 1.
Может кому пригодится.