You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache Camel集成RabbitMQ时特殊字符转问号的问题咨询

Apache Camel + RabbitMQ 特殊字符转问号问题解决

你遇到的问题本质是字符集解码不匹配:虽然设置了Exchange.CONTENT_TYPE头,但convertBodyTo(String.class)默认不会自动从这个头里提取字符集,当消息体是字节流时,Camel可能会 fallback 到系统默认字符集(比如US-ASCII),把无法识别的°这类非ASCII字符替换成问号。

直接解决方法

不用依赖Content-Type头,直接给convertBodyTo指定UTF-8字符集。把代码里的两次convertBodyTo(String.class)改成:

// 第一次转换明确指定UTF-8
.convertBodyTo(String.class, "UTF-8")
.setProperty(CommonConstants.ORIGINAL_MESSAGE, body())
// ... 中间其他配置 ...
// 第二次转换同样指定UTF-8
.convertBodyTo(String.class, "UTF-8")

额外要检查的点

  • 确认发送消息到RabbitMQ的生产者是用UTF-8编码的,源头编码错误的话,下游再处理也无法恢复正确字符。
  • 检查assetEndpointUrl指向的下游服务是否正确处理UTF-8编码的消息,避免后续环节再次出现字符乱码问题。

内容的提问来源于stack exchange,提问作者Tony

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 21:17:36