forum.bitel.ru http://forum.bitel.ru/ |
|
Создание счетов и кодировка XML http://forum.bitel.ru/viewtopic.php?f=14&t=11261 |
Страница 1 из 1 |
Автор: | Steper [ 31 дек 2015, 15:33 ] |
Заголовок сообщения: | Создание счетов и кодировка XML |
Здравствуйте! Пытаюсь создавать счета, посылаю POST запрос с параметрами(module=bill&action=GenerateBills...). Среди прочих шлю параметр bills, куда строкой вставляю xml(Сейчас такой вариант Код: nameValuePairs.add(new BasicNameValuePair("bills", new String(xml.getBytes("UTF-8"),"cp1251"))); ). Документы создаются, но как ни мудрил с кодировками, никак не могу добиться корректного отображения кириллицы. Подскажите, пожалуйста, как побороть?
|
Автор: | skn [ 31 дек 2015, 16:58 ] |
Заголовок сообщения: | Re: Создание счетов и кодировка XML |
а xml у вас правильная? какая в ней кодировка? как запрос отсылаете? |
Автор: | dimOn [ 31 дек 2015, 17:09 ] |
Заголовок сообщения: | Re: Создание счетов и кодировка XML |
зачем вы вообще перекодируете? |
Автор: | Steper [ 11 янв 2016, 14:34 ] |
Заголовок сообщения: | Re: Создание счетов и кодировка XML |
skn писал(а): а xml у вас правильная? какая в ней кодировка? как запрос отсылаете? xml, думаю, правильная, ведь документ создаётся: Код: <bills><bill type="6" type_title="Счёт по расходам" cid="39905" summ="250.00" account_id="1"><pos name="Расходы на подключение к услуге декабрь 2015 г." summ="0.00" sumUnscaled="0.00000" position_id="20" quantity="1.00" qtynums="2" qtynumsRnd="4" unit="шт." unitCode="796" awlz="0" insum="1"/><pos name="Расходы на диагностику декабрь 2015 г." summ="250.00" sumUnscaled="250.00000" position_id="25" quantity="1.00" qtynums="2" qtynumsRnd="4" unit="шт." unitCode="796" awlz="0" insum="1"/><pos name="Расходы на доп. услуги декабрь 2015 г." summ="0.00" sumUnscaled="0.00000" position_id="30" quantity="1.00" qtynums="2" qtynumsRnd="4" unit="шт." unitCode="796" awlz="0" insum="1"/><sub_bill type="6" type_title="" cid="39906" summ="0.00"><pos name="Расходы на подключение к услуге декабрь 2015 г." summ="0.00" sumUnscaled="0.00000" position_id="20" quantity="1.00" qtynums="2" qtynumsRnd="4" unit="шт." unitCode="796" awlz="0" insum="1"/><pos name="Расходы на диагностику декабрь 2015 г." summ="0.00" sumUnscaled="0.00000" position_id="25" quantity="1.00" qtynums="2" qtynumsRnd="4" unit="шт." unitCode="796" awlz="0" insum="1"/><pos name="Расходы на доп. услуги декабрь 2015 г." summ="0.00" sumUnscaled="0.00000" position_id="30" quantity="1.00" qtynums="2" qtynumsRnd="4" unit="шт." unitCode="796" awlz="0" insum="1"/></sub_bill ><sub_bill type="6" type_title="" cid="39907" summ="0.00"><pos name="Расходы на подключение к услуге декабрь 2015 г." summ="0.00" sumUnscaled="0.00000" position_id="20" quantity="1.00" qtynums="2" qtynumsRnd="4" unit="шт." unitCode="796" awlz="0" insum="1"/><pos name="Расходы на диагностику декабрь 2015 г." summ="0.00" sumUnscaled="0.00000" position_id="25" quantity="1.00" qtynums="2" qtynumsRnd="4" unit="шт." unitCode="796" awlz="0" insum="1"/><pos name="Расходы на доп. услуги декабрь 2015 г." summ="0.00" sumUnscaled="0.00000" position_id="30" quantity="1.00" qtynums="2" qtynumsRnd="4" unit="шт." unitCode="796" awlz="0" insum="1"/></sub_bill ><sub_bill type="6" type_title="" cid="39909" summ="0.00"><pos name="Расходы на подключение к услуге декабрь 2015 г." summ="0.00" sumUnscaled="0.00000" position_id="20" quantity="1.00" qtynums="2" qtynumsRnd="4" unit="шт." unitCode="796" awlz="0" insum="1"/><pos name="Расходы на диагностику декабрь 2015 г." summ="0.00" sumUnscaled="0.00000" position_id="25" quantity="1.00" qtynums="2" qtynumsRnd="4" unit="шт." unitCode="796" awlz="0" insum="1"/><pos name="Расходы на доп. услуги декабрь 2015 г." summ="0.00" sumUnscaled="0.00000" position_id="30" quantity="1.00" qtynums="2" qtynumsRnd="4" unit="шт." unitCode="796" awlz="0" insum="1"/></sub_bill ><sub_bill type="6" type_title="" cid="39910" summ="0.00"><pos name="Расходы на подключение к услуге декабрь 2015 г." summ="0.00" sumUnscaled="0.00000" position_id="20" quantity="1.00" qtynums="2" qtynumsRnd="4" unit="шт." unitCode="796" awlz="0" insum="1"/><pos name="Расходы на диагностику декабрь 2015 г." summ="0.00" sumUnscaled="0.00000" position_id="25" quantity="1.00" qtynums="2" qtynumsRnd="4" unit="шт." unitCode="796" awlz="0" insum="1"/><pos name="Расходы на доп. услуги декабрь 2015 г." summ="0.00" sumUnscaled="0.00000" position_id="30" quantity="1.00" qtynums="2" qtynumsRnd="4" unit="шт." unitCode="796" awlz="0" insum="1"/></sub_bill ><sub_bill type="6" type_title="" cid="39911" summ="0.00"><pos name="Расходы на подключение к услуге декабрь 2015 г." summ="0.00" sumUnscaled="0.00000" position_id="20" quantity="1.00" qtynums="2" qtynumsRnd="4" unit="шт." unitCode="796" awlz="0" insum="1"/><pos name="Расходы на диагностику декабрь 2015 г." summ="0.00" sumUnscaled="0.00000" position_id="25" quantity="1.00" qtynums="2" qtynumsRnd="4" unit="шт." unitCode="796" awlz="0" insum="1"/><pos name="Расходы на доп. услуги декабрь 2015 г." summ="0.00" sumUnscaled="0.00000" position_id="30" quantity="1.00" qtynums="2" qtynumsRnd="4" unit="шт." unitCode="796" awlz="0" insum="1"/></sub_bill ><sub_bill type="6" type_title="" cid="40061" summ="0.00"><pos name="Расходы на подключение к услуге декабрь 2015 г." summ="0.00" sumUnscaled="0.00000" position_id="20" quantity="1.00" qtynums="2" qtynumsRnd="4" unit="шт." unitCode="796" awlz="0" insum="1"/><pos name="Расходы на диагностику декабрь 2015 г." summ="0.00" sumUnscaled="0.00000" position_id="25" quantity="1.00" qtynums="2" qtynumsRnd="4" unit="шт." unitCode="796" awlz="0" insum="1"/><pos name="Расходы на доп. услуги декабрь 2015 г." summ="0.00" sumUnscaled="0.00000" position_id="30" quantity="1.00" qtynums="2" qtynumsRnd="4" unit="шт." unitCode="796" awlz="0" insum="1"/></sub_bill ><sub_bill type="6" type_title="" cid="40087" summ="0.00"><pos name="Расходы на подключение к услуге декабрь 2015 г." summ="0.00" sumUnscaled="0.00000" position_id="20" quantity="1.00" qtynums="2" qtynumsRnd="4" unit="шт." unitCode="796" awlz="0" insum="1"/><pos name="Расходы на диагностику декабрь 2015 г." summ="0.00" sumUnscaled="0.00000" position_id="25" quantity="1.00" qtynums="2" qtynumsRnd="4" unit="шт." unitCode="796" awlz="0" insum="1"/><pos name="Расходы на доп. услуги декабрь 2015 г." summ="0.00" sumUnscaled="0.00000" position_id="30" quantity="1.00" qtynums="2" qtynumsRnd="4" unit="шт." unitCode="796" awlz="0" insum="1"/></sub_bill ><sub_bill type="6" type_title="" cid="40196" summ="0.00"><pos name="Расходы на подключение к услуге декабрь 2015 г." summ="0.00" sumUnscaled="0.00000" position_id="20" quantity="1.00" qtynums="2" qtynumsRnd="4" unit="шт." unitCode="796" awlz="0" insum="1"/><pos name="Расходы на диагностику декабрь 2015 г." summ="0.00" sumUnscaled="0.00000" position_id="25" quantity="1.00" qtynums="2" qtynumsRnd="4" unit="шт." unitCode="796" awlz="0" insum="1"/><pos name="Расходы на доп. услуги декабрь 2015 г." summ="0.00" sumUnscaled="0.00000" position_id="30" quantity="1.00" qtynums="2" qtynumsRnd="4" unit="шт." unitCode="796" awlz="0" insum="1"/></sub_bill ></bill></bills> Про кодировку не совсем понимаю, это строка(String в Java), которую я засовываю в запрос(POST): Код: nameValuePairs.add(new BasicNameValuePair("bills", xml)); Вот этот код посылает запрос: Код: HttpPost request = new HttpPost(server);
Credentials credentials = new UsernamePasswordCredentials(username, password); BasicScheme scheme = new BasicScheme(); try { request.addHeader(scheme.authenticate(credentials, request, new BasicHttpContext())); } catch(AuthenticationException e) { logger.error("Bad auth: " + e.getMessage()); result[1] = "Внутрення ошибка сервера: ошибка аутентификации."; return result; } try { request.setEntity(new UrlEncodedFormEntity(nameValuePairs)); } catch (UnsupportedEncodingException e1) { logger.error("Can't get a response", e1); result[1] = "Ошибка протокола составления запроса."; return result; } DefaultHttpClient client = new DefaultHttpClient(); ResponseHandler<String> handler = new BasicResponseHandler(); try { result[1] = client.execute(request, handler); |
Автор: | Steper [ 11 янв 2016, 14:37 ] |
Заголовок сообщения: | Re: Создание счетов и кодировка XML |
dimOn писал(а): зачем вы вообще перекодируете? Без перекодировки тоже вопросительные знаки вместо всех русских символов, отчаянно копал хоть куда-нибудь. Код: nameValuePairs.add(new BasicNameValuePair("bills", xml)); (xml здесь - это String) |
Автор: | Steper [ 11 янв 2016, 20:23 ] |
Заголовок сообщения: | Re: Создание счетов и кодировка XML |
В итоге получается, что я формирую в Java xml в виде строки для нужных мне документов, отправляю её в биллинг POST запросом, всё распознаётся хорошо, кроме русских символов(на их месте или каракули или вопросики). Уже всю голову сломал с этими кодировками((( |
Автор: | dimOn [ 11 янв 2016, 22:59 ] |
Заголовок сообщения: | Re: Создание счетов и кодировка XML |
вы сначала разберитесь в чём у вас проблема, в каком месте. слишком мало данных, чтобы сделать какой-то вывод. найдите на каком именно этапе портится кодировка. если у вас xml уже String (она через println распечатывается нормально? или выше откуда вывод с нормальной кириллицей - это непонятно) - зачем вы её перекодируете? String в Java не имеет никаких кодировок по определению, т.к. это не набор байтов. если xml в виде String у вас корректная, то значит проблема не в БД и не в коде Java, а в дальнейшей судьбе этих данных, скорее всего на моменте POST запроса куда-то вы неправильно его кодируете. |
Автор: | Steper [ 12 янв 2016, 15:03 ] |
Заголовок сообщения: | Re: Создание счетов и кодировка XML |
Прошу прощения за беспокойство, в итоге проблема была в формировании запроса: Код: request.setEntity(new UrlEncodedFormEntity(nameValuePairs)); А нужно Код: request.setEntity(new UrlEncodedFormEntity(nameValuePairs, "UTF-8"));
|
Автор: | dimOn [ 12 янв 2016, 17:55 ] |
Заголовок сообщения: | Re: Создание счетов и кодировка XML |
ну как я и предположил, собственно |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |