Camel:改变流编码

2023-12-02

我正在通过该路由从 http 接收数据流:

from("direct:foo").
to("http://foo.com/bar.html").
to("file:///tmp/bar.html")

HTTP 流附带Windows-1251编码。我想重新编码UTF-8即时然后存储到文件。

如何使用标准来做到这一点camel way?


我认为 vikingsteve 的解决方案遗漏了一步。输入流包含编码为 CP1251 的字符。当您将输入流内容转换为字符串时,该流中的字符不会更改其编码。您需要指定在解码字符时对字符进行编码的实体所使用的相同字符编码方案。否则你会得到不想要的结果。

<route id="process_umlaug_file" startupOrder="2">
    <from uri="file:///home/steppra1/Downloads?fileName=input_umlauts.txt"/>
    <convertBodyTo type="java.lang.String" charset="ISO-8859-1"/>
    <to uri="file:///home/steppra1/Downloads?fileName=output_umlauts.txt&amp;charset=UTF-8"/>
</route>

我测试了读取包含德语变音符号的 CP1251 编码文件:

steppra1@steppra1-linux-mint ~/Downloads $ file input_umlauts.txt 
input_umlauts.txt: ISO-8859 text, with CRLF line terminators

steppra1@steppra1-linux-mint ~/Downloads $ file output_umlauts.txt 
output_umlauts.txt: UTF-8 Unicode text, with CRLF line terminators

使用解码然后重新编码的两个步骤产生正确编码的德语元音变音。如果我将上面的路线更改为

<route id="process_umlaug_file" startupOrder="2">
    <from uri="file:///home/steppra1/Downloads?fileName=input_umlauts.txt"/>
    <convertBodyTo type="java.lang.String" charset="UTF-8"/>
    <to uri="file:///home/steppra1/Downloads?fileName=output_umlauts.txt"/>
</route>

那么输出文件仍然是 UTF-8 编码,可能是因为这是我的平台默认值,但变音符号是乱码。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Camel:改变流编码 的相关文章

  • 在 Apache Camel 日志中记录简单文本

    可以在 Camel 中记录简单文本 如下所示
  • Spring Servicemix 骆驼中的 Sql 连接

    Spring Servicemix 骆驼中的 Sql 连接
  • 如何在同一场战争的多个 jar 中使用相同的 CamelContext

    我使用的是camel 2 16 2 我需要在多个jar 中使用一个 CamelContext 因为我需要将所有 Camel 路由器放入一个 CamelContext 中 所以我的战争将把所有这些罐子作为 Maven 工件 请告诉我如何处理上
  • 异常未传播到 Apache Camel 中的错误处理程序

    我有一条定义 doTry doCatch 块的路线 当在 doCatch 块中处理异常时 我希望将其传播到错误处理程序 以确保消息在本地处理后添加到死信队列中 问题是我无法让错误处理程序的传播正常工作 defaultErrorHandler
  • 为什么camel kafka Producer很慢?

    我使用 apache camel kafka 作为生成消息的客户端 我观察到 kafka 生产者需要 1 毫秒才能推送一条消息 如果我使用骆驼聚合将消息合并到批处理中 那么推送一条消息需要 100 毫秒 安装简述 3 kafka 集群 16
  • Camel从类路径资源读取文件?

    我在 Spring Boot 应用程序的 resources file txt 的类路径上有一个文件 我如何在骆驼路线中引用它 我努力了 from file resource classpath fileName file txt 及其变体
  • Apache ActiveMq Artemis 客户端重新连接到集群 HA 复制/共享数据存储中的下一个可用代理

    Broker xml host1 和host2只是端口号更改为61616和slave作为配置 参考Apache Artemis 客户端故障转移发现 https stackoverflow com questions 62185183 apa
  • 如何使用 cxf 组件使用 Apache Camel 调用第三方 Web 服务

    我浏览了 Apache Camel 网站和 Camel in Action 上的示例 两者都重点关注公开 Web 服务 我在网上找到的唯一示例不起作用 我正在尝试访问第三方网络服务 wsdl http www webservicex net
  • 多个 Activemq 远程代理的 Spring 配置

    如何在spring上下文中配置多个远程activemq代理 不同的IP地址 以下是 1 个远程代理的配置 我正在使用camel来创建路由 用于在多个远程代理中的不同队列中生成和使用消息 根据以下路由 系统如何知道每个队列属于哪个远程代理 项
  • 骆驼聚集策略

    我正在解析一个 CSV 文件 将其分割并通过骆驼中的多个处理器进行路由 有两个端点 一个有错误的数据 而另一个有经过验证的数据 我需要汇总数据的建议 假设 CSV 文件有 10 条记录 其中 6 条到达一个端点 4 条到达另一个端点 我如何
  • Apache Camel:带有 CxfEndpoint 的 RouteBuilder

    Hello 我正在尝试使用 Java DSL 和 RouteBuilder 实现 Camel 路线 我想从计时器端点发送到 cxf 端点 Code public class MyRoute extends RouteBuilder Over
  • 从 HTTP 端点发送消息到 JMS

    我正在尝试使用骆驼路由 它将接受 http 端点上的有效负载 然后将该有效负载写入 JMS 队列 到目前为止我所拥有的路线如下 但是一条空消息被传递到 jms 队列 消息到达那里 但没有正文 路线如下
  • 骆驼http端点动态形成url

    我正在尝试使用的伙计们 from direct a to someUrl processor new Processor Override public void process Exchange arg0 throws Exception
  • Camel如何以流模式处理json?

    为了在流模式下读取 json 并解组 Camel OOB 中有哪些可用选项 如果不是现成的 如何实施 我发现camel xstream 可能会有所帮助 流模式是默认的还是我们需要做其他事情来使其以流模式读取 还有 Jackson Strea
  • ServiceMix 中 Apache-Camel 路由的管理和监控

    作为 Camel 和 ServiceMix 的用户 我经常需要监控这些工具以进行开发 我主要使用 JConsole 从 ServiceMix 和 Camel 访问 MBean 它为 ESB 开发人员提供了一些非常有用的指标 我还使用 kar
  • Camel-Jetty http代理+大响应数据导致问题:缓冲容量超出

    jetty专家 我在通过camel jetty作为http代理获取大数据时出错 欢迎任何经验 想法 建议 提前致谢 路线构建器代码 from servlet balancer matchOnUriPrefix true to jetty h
  • Apache Camel/ActiveMQ 优先级路由

    我有两个具有相同消费者的 AMQ 队列 第一个队列 Q1 处理 97 的消息 另一个队列 Q2 仅处理 3 问题是 Q2 中的消息需要在排队后立即处理 所以我的问题是 当第二季度有消息可用时 我需要以某种方式暂停第一条路线以吸引其消费者 a
  • Camel Rest URI 使用后缀

    所以我有一个使用 Camel 的 REST Web 服务 它工作得很好 只是如果我用后缀调用我的 URI 我会得到相同的响应 而不是 404 休息配置 restConfiguration component restlet bindingM
  • 用于检查 Apache Camel XML 中字符串的 JSONPath 表达式

    假设我有一个简单的 json 文件 如下所示 log host blah severity INFO system 1 我正在使用 Apache Camel 它是 Spring XML 来处理和路由 json 文件 我的路由代码看起来像这样
  • 记录骆驼路线

    我的项目中有几个 Camel 上下文 如果可能的话 我想以逆向工程方式记录路线 因为我们希望保持与上下文相关的文档最新 最好的方法是什么 我们倾向于预先实际设计路线 并使用来自EIP book http www eaipatterns co

随机推荐