私はlatin americaのnewspaper xml feedからRSSフィードを取得し、レスポンス本文をJSONに変換するためにhttp呼び出しを行っています。 新聞のラテン系アメリカ人の論文の問題は、符号化する必要のあるラテン文字を見つけるのに共通しています(á é í ó ú
など)。Apache Camel xmlをhttpからjsonにマーシャリングした後のエンコーディングが間違っています
問題は、私はこの1つのような説明を取得して応答が適切にエンコードされていないということです。 Las lluvias llegar��an a la ciudad de C��rdoba jueves y viernes seg��n prev�� el Servicio Meteorol��gico Nacional (SMN)
私は、HTTPコンポーネントとxmljsonマーシャルと仕事の両方のどちらの符号化パラメータを設定しようとしました。私はまた、application/rss+xml; charset=utf-8
とapplication/json; charset=utf-8
のどちらのContent-Typeヘッダも強制しませんでした。
私は、次のデータフォーマットを使用しています:以下のように
<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