From 0429b24ffcb083e9804262f7f44215626c6d2863 Mon Sep 17 00:00:00 2001 From: Leo Date: Sun, 16 Mar 2025 20:25:54 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E7=BE=8E=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/van/business/mq/MessageConsumerService.java | 7 ++++++- .../java/cn/van/business/mq/MessageProducerService.java | 4 +++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/java/cn/van/business/mq/MessageConsumerService.java b/src/main/java/cn/van/business/mq/MessageConsumerService.java index 4caee44..67ea2af 100644 --- a/src/main/java/cn/van/business/mq/MessageConsumerService.java +++ b/src/main/java/cn/van/business/mq/MessageConsumerService.java @@ -13,6 +13,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.nio.charset.StandardCharsets; import java.util.concurrent.TimeUnit; import static cn.van.business.util.WXUtil.WX_BASE_URL; @@ -54,8 +55,12 @@ public class MessageConsumerService implements RocketMQListener { // 4. 发送请求(保持原有) String responseStr; - responseStr = HttpRequest.post(WX_BASE_URL).body(message.toJSONString()).execute().charset("UTF-8").body(); +// 修改onMessage方法中的HTTP请求部分 + responseStr = HttpRequest.post(WX_BASE_URL).header("Content-Type", "application/json; charset=UTF-8") // 明确指定编码 + .body(message.toJSONString().getBytes(StandardCharsets.UTF_8)) // 显式转为UTF-8字节 + .execute().charset("UTF-8") // 强制响应体使用UTF-8解码 + .body(); // ... [保持原有响应处理逻辑] if (ObjectUtil.isNotEmpty(responseStr)) { JSONObject response = JSONObject.parseObject(responseStr); diff --git a/src/main/java/cn/van/business/mq/MessageProducerService.java b/src/main/java/cn/van/business/mq/MessageProducerService.java index 7cf9f7e..a0aefd5 100644 --- a/src/main/java/cn/van/business/mq/MessageProducerService.java +++ b/src/main/java/cn/van/business/mq/MessageProducerService.java @@ -11,6 +11,8 @@ import org.springframework.messaging.Message; import org.springframework.messaging.support.MessageBuilder; import org.springframework.stereotype.Service; +import java.nio.charset.StandardCharsets; + @Service public class MessageProducerService { @@ -44,7 +46,7 @@ public class MessageProducerService { } // 构建Spring Message Message message = MessageBuilder - .withPayload(data.toJSONString()) + .withPayload(new String(data.toJSONString().getBytes(StandardCharsets.UTF_8), StandardCharsets.UTF_8)) .setHeader(RocketMQHeaders.TAGS, "wx") .build();