Я выполняю http-вызов, чтобы получить RSS-канал от newspaper xml feed от латинской америки, а затем преобразовать тело ответа в JSON. Проблема с латинскими американовыми газетами - это обычное правило, чтобы найти латинские символы, которые необходимо закодировать, например á é í ó ú
.Apache Camel неправильная кодировка после сортировки xml на json с http
Проблема заключается в том, что ответ не закодирован должным образом, я получаю описание как этот: Las lluvias llegar��an a la ciudad de C��rdoba jueves y viernes seg��n prev�� el Servicio Meteorol��gico Nacional (SMN)
Я попытался установить параметры кодирования для компонента HTTP и xmljson маршала и ни один из обоего работ. Я также пытался форсировать заголовки Content-Type для application/rss+xml; charset=utf-8
и application/json; charset=utf-8
, но ни один.
Я использую следующий DataFormat:
<dataFormats>
<xmljson id="xmljson"/>
</dataFormats>
И мой маршрут выглядит следующим образом:
<route id="rss">
<from uri="direct:rss"/>
<setHeader headerName="CamelHttpUri">
<simple>"http://srvc.lavoz.com.ar/rss.xml"</simple>
</setHeader>
<setHeader headerName="CamelHttpMethod">
<constant>GET</constant>
</setHeader>
<to uri="http://rss"/>
<marshal ref="xmljson"/>
</route>
Пример ответ был бы:
{
"channel": {
"title": "LaVoz",
"link": "http://srvc.lavoz.com.ar/rss.xml",
"description": [],
"language": "en",
"item": [
{
"title": "��Se vienen las lluvias a C��rdoba?",
"link": "http://srvc.lavoz.com.ar/ciudadanos/se-vienen-las-lluvias-cordoba",
"description": "Las lluvias llegar��an a la ciudad de C��rdoba jueves y viernes seg��n prev�� el Servicio Meteorol��gico Nacional (SMN) aunque se mantendr�� el promedio de las temperaturas.�� Este martes estuvo cielo algo nublado con una temperatura m��nima de 14�� registrada a las 6.10 y una m��xima de 29,5�� a las 15.30, seg��n indic�� el Observatorio Meteorol��gico C��rdoba.�� Pron��stico extendido Hay probabilidad de tormentas para jueves y viernes. Mir�� el pron��stico.�� Ciudadanos",
"pubDate": "Tue, 14 Feb 2017 21:19:21 +0000",
"dc:creator": {
"@xmlns:dc": "http://purl.org/dc/elements/1.1/",
"#text": "redaccionlavoz"
},
"guid": {
"@isPermaLink": "false",
"#text": "1099119 at http://srvc.lavoz.com.ar"
}
},...
Обновление:
- I f маршрут возвращает ответ XML (без сортировки его в JSON), кодирование работает, как ожидалось.
- Если вместо сортировки маршрут регистрирует содержимое тела с ответом XML в регистраторе, проблема также возникает.
Пробовали ли вы Is0 8859-1? –
@SoucianceEqdamRashti да, это не сработало. Любой из ISO 8859-1 или UTF-8 должен решить проблему кодирования. – fuxes