Как удалить кодировку символов для ответа на сообщение Apache Axis 2 - PullRequest
0 голосов
/ 30 июля 2009

Мы используем Axis2, чтобы сгенерировать ответ веб-службы, тело которого представляет собой сообщение XML, сгенерированное из системы, использующей в качестве кодировки windows 1252 Наша система Axis2 обернет это тело в мыльное сообщение, используя utf8. Затем сообщение отправляется звонящему. Однако вызывающая сторона продолжает отклонять сообщение с «Неверный байт 1 из 1-байтового UTF-8»

Система вызова предлагает мне убрать атрибут кодирования в объявлении xml ответа. Я не знаю, как сказать оси не ставить эту настройку. Кто-нибудь знает как?

Ответы [ 2 ]

1 голос
/ 18 января 2010

Правильно ли объявлена ​​исходная кодировка XML как Windows-1252 в заголовке XML? Если нет, то это не совсем XML, и эта система сломана; если он объявлен и Axis2 просто помечает его как UTF-8 без фактического преобразования данных, то Axis2 (очень плохо) сломан.

В любом случае исправьте сломанную систему. НЕ удаляйте кодировку - это худшее, что вы можете сделать. Как указано выше: XML без объявленной кодировки - это не XML, это случайные данные, которые могут выглядеть неопределенно как XML.

1 голос
/ 30 июля 2009

Вероятно, лучше сохранить ответ Axis как UTF-8, и вместо этого попытаться изменить кодирование полезной нагрузки с 1252 на UTF-8. Как вы собираете ответ SOAP из полезной нагрузки?

...