使用http4将任何网页内容转换为UTF-8

时间:2014-02-21 05:06:36

标签: http utf-8 apache-camel

我正在使用apache camel-http4。

我想将任何网页内容转换为UTF-8,我使用http4作为我的httpClient。

我创建了实现org.apache.camel.component.http4.HttpClientConfigurer的HttpClientConfigurer类。

我已将HTTP_CONTENT_CHARSET设置为Consts.UTF_8,就像在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的任何想法。

1 个答案:

答案 0 :(得分:0)

哦,编码魔法不像这样那么容易。它几乎不依赖于您的输入字符集,并且您的消息正文必须采用正确的编码才能将其正确转换为输出。所以,你必须

  1. 以正确的编码方式接收输入(如果不能,则无效)
  2. 将身体转换为utf-8编码。通过.convertBodyTo(String.class, "UTF-8")(如果1.错了,它将无效)
  3. 使用适当的编码元数据发送出去,您执行Exchange.HTTP_CHARACTER_ENCODING