2014-02-21 23 views
3

我正在使用apache camel-http4。使用http4將任何網頁內容轉換爲UTF-8

我想將任何網頁內容轉換爲UTF-8,我使用http4作爲我的httpClient。

我創建了我的HttpClientConfigurer類,它實現了org.apache.camel.component.http4.HttpClientConfigurer。

我已經將Const_UTF_8設置爲HTTP_CONTENT_CHARSET,就像在configureHttpClient方法中一樣。

public void configureHttpClient(HttpClient client) { 
    client.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1).setParameter(CoreProtocolPNames.HTTP_CONTENT_CHARSET,Consts.UTF_8); 
} 

但是,這似乎並沒有工作。

我也試圖頭設置爲UTF-8這樣,

setHeader(Exchange.HTTP_CHARACTER_ENCODING, constant('UTF-8')) 

我的路線內,但同樣沒有奏效。

關於如何使用http4將任何頁面編碼轉換爲UTF-8的想法。

+0

駱駝[文件](https://camel.apache.org/http4。 html)提及在Exchange上設置它:exchange.setProperty(Exchange.CHARSET_NAME,「UTF-8」); –

回答

0

呵呵,編碼魔法不能這麼容易的工作。它幾乎不依賴於您的輸入字符集,並且您的郵件正文必須使用正確的編碼將其正確地轉換爲輸出。所以,你必須

  1. 接收輸入正確的編碼(如果不是會不工作)
  2. 隱蔽身體UTF-8編碼。通過.convertBodyTo(String.class, "UTF-8")(如果1是錯誤的,它不會工作)
  3. 發送出去與正確的編碼元數據,你做Exchange.HTTP_CHARACTER_ENCODING