IBM MQ 接收BytesMessage类型的消息转成String出现乱码

基于MYD-YT153与AD7616的16通道高速ADC采集系统实战指南 在嵌入式系统与工业数据采集领域,模拟信号采集是连接物理世界与数字系统的关键技术。其核心原理是通过模数转换器(ADC)将连续的模拟电压信号转换为离散的数字码值,供处理器处理。这项技术的价值在于实现了对温度、压力、振动等关键物理量的精确感知与数字化,是工业自动化、设备监测、科学实验等场景的基石。本文聚焦于**多通道**、**高精度**采集这一常见需求,深入剖析如何利用全志T153处理器的LocalBus并行总线接口,高效驱动ADI的16位、16通道同步采样ADC芯片AD7616,构建一个稳定可靠的高速数据采集系 阅读详情

从字节流消息中读取消息,转成字符类型出现中文乱码,实际上是由于put到MQ中的字符编码与接收的字符编码转化不一致导致的,从日志信息可以看出,MQ中的这一条消息是有对应的Character。所以解决办法就是从message中获取字符编码,对应的代码:message.getStringProperty(WMQConstants.JMS_IBM_CHARACTER_SET)

然后拿对应的Character再转成字符串。

code:

 

String responseXml = null;
if
(message instanceof BytesMessage) {
    BytesMessage bytesMessage = (BytesMessage) message
;
    try
{
       
byte[] bys = new byte[(int) bytesMessage.getBodyLength()];
       
bytesMessage.readBytes(bys);
       
String codePage = message.getStringProperty(WMQConstants.JMS_IBM_CHARACTER_SET);
       
responseXml = new String(bys, codePage);
       
log.info("receive BytesMessage:{}", responseXml);
   
} catch (JMSException | UnsupportedEncodingException e) {
        e.printStackTrace()
;
   
}
}
else {
    TextMessage textMessage = (TextMessage) message
;
    try
{
        responseXml = textMessage.getText()
;
       
log.info("receive TextMessage:{}", responseXml);
   
} catch (JMSException e) {
        e.printStackTrace()
;
   
}
}

具体的可以参照IBM的帮助文档

https://www.ibm.com/support/knowledgecenter/zh/SSFKSJ_9.0.0/com.ibm.mq.dev.doc/q032120_.htm

RT-Thread与ROS2通信:micro-ROS在STM32上的移植实践 本文详细介绍了在STM32平台上使用RT-Thread实时操作系统移植micro-ROS实现与ROS2通信的实践方案。通过对比rosserial方案,重点阐述了micro-ROS基于XRCE-DDS协议栈在数据可靠性(丢包率低于1%)、双模式通信(UDP/串口)以及C/C++混合编程方面的优势,为嵌入式设备与ROS2的高效通信提供了完整解决方案。 阅读详情

相关推荐

STM32+HX711实战:5分钟搞定拉力传感器数据采集(附完整代码)

本文详细介绍了如何使用STM32微控制器和HX711模数转换器快速搭建高精度拉力测量系统。通过硬件连接指南、驱动实现代码和校准方法,帮助开发者在5分钟内完成拉力传感器数据采集,适用于工业自动化和消费电子等场景。

y7z8a9的博客 873

ibmmq中文乱码问题

//1 MQEnvironment.CCSID =Integer.parseInt(CCSIDs); String msgStr="你好IBMMQ"; MQMessage msg = new MQMessage();// 要写入队列的消息 //2 msg.format = MQC.MQFMT_STRING; //3 msg.characterSet = 1381; ...

Hxuening的博客 2924

经典密码体制(上)

头歌

shannidawang的博客 3086

IBM WEBSPHERE MQ 接收消息中文乱码问题的处理

第一次接触WebSphere MQ,C#的程序总是报错,后来改用java写。但发现一个问题,如果接收时用readFully方法接收字符串,消息里的中文会出现乱码,就是将取到的bytes再转码也无济于事。字符集也设了,仍然是乱码。出现问题的代码:            int size = rcvMessage.getMessageLength();            byte[] p =

uper的专栏 1万+

CTF---Web---文件包含---01

文章目录前言一、题目描述二、解题步骤1.查看源代码2.文件包含(/etc/passwd)3.解码总结 前言 题目分类: CTF—Web—文件包含 一、题目描述 题目:提示寻找passwd文件 二、解题步骤 1.查看源代码 提示所有图片存储路径是download.php?name=img, 此时name参数的存在就提示此题可能为“文件包含”。 2.文件包含(/etc/passwd) 两种查看方式: 2.1、访问view-source:http://192.168.87.180/download.php

qq_22160557的博客 1391

lammps教程:非晶sio2建模方法

大家好,我是小马老师。 本文介绍非晶sio2的建模方法。 sio2的建模方法有很多,可以下载cif文件使用atomsk转为data文件,也可以直接在ms中导入sio2结构,这些方法建的sio2都是标准的sio2晶体。 如果要建立非晶状态的sio2,就是把排列规则的sio2变成无序排列的sio2。 非晶建模方法有很多,在lammps中,可以通过高温高压的方法打乱sio2的排列实现非晶建模。 代码中的温度和步数可根据需要自己调整。 下面给出in文件案例代码。 units metal atom

lammps_jiayou的博客 5267

java中byte[]类型如何转换为String类型

java中byte[]类型如何转换为String类型

gb4215287的博客 2万+

ROCm rocr-libhsakmt分析系列1-2:多GPU跨卡VRAM访问机制分析

本文基于ROCr-Runtime的libhsakmt库源码,深入分析了多GPU系统中跨设备内存访问的实现机制。主要内容包括: 实现流程概述:通过P2P拓扑发现、统一虚拟地址空间、页表映射和硬件转发四个步骤,实现零拷贝的跨GPU内存访问。

图形/计算GPU的驱动与虚拟化技术分享园地 2500

JAVA开发(byte和string转换类型的坑)

最近真实遇到的问题,所以在此做个总结。byte和string转换类型的坑。因为我要把数据缓存到redis,所以不得不将byte类型数据先转换成string。然后获取数据的时候,又将string类型数据转换成byte。

JAVA领域优质创作者,基于分片网络查询方法专利发明者。 6604

OpenCode + Oh My OpenCode:打造你的终极AI编程团队(OpenCode新手入门指南)

本文详细介绍了开源终端AI编程助手 OpenCode 的完整配置教程 🖥️,从安装、AI模型配置到增强插件 Oh My OpenCode 的部署一应俱全。支持 Claude、ChatGPT、Gemini 多模型切换 🤖,还能实现多AI智能体协作开发。步骤清晰适合新手 📝,想在终端用AI写代码的开发者不要错过 ✨

XiaoqiangClub的博客 1万+

开源模型应用落地-qwen模型小试-Qwen3-8B-快速体验(一)

阿里云推出国内首个集成“快思考”与“慢思考”能力的 Qwen3-8B 大语言模型,以80亿参数和 128K 上下文支持,重塑AI应用边界并助力开发者高效部署

以微薄之力,予他人些许温暖. 2万+

怎么将byte转换为String?

这里的 "UTF-8" 是字符编码,它告诉Java如何解释字节数组中的字节以构建字符串。在Java中,将字节(byte)数组转换为字符串(String)通常需要指定字符编码,因为字节可以表示各种不同的字符编码,如UTF-8、UTF-16、ISO-8859-1等。如果字节数组中的字节表示的是有效的UTF-8编码的字符序列,通常情况下我们可以安全地使用UTF-8字符编码来将字节数组转换为字符串。请注意,如果我们不确定字节数组中的字节是使用哪种字符编码生成的,那么使用错误的字符编码可能会导致乱码或错误的结果。

Blue92120的博客 1万+

uniApp微信小程序:error: 60001 request:fail errcode:-101 cronet error code:-101error_msg:net::ERR CONNECTI

uni-app微信小程序域名访问报error 60001 request:fail errcode:-101,解决Uniapp微信小程序报600001错误,uni.request()接口请求报错,服务器更换SSL证书后,uniapp微信小程序出现`request:fail errcode:-101`问题分析与解决,服务器更换ssl证书后,手机访问微信小程序异常,微信小程序更换SSL证书后出现请求报错,服务器更换SSL证书,微信小程序报600001,小程序反应偶尔出现request:fail errcode:

✅ 精选推荐文章 4580

IBMMQ Chinease ISSUE

最近遇到一个问题,我们从一个IBM MQ 中收到的中文消息出现了乱码。这是发送的消息 :    繁体中文当然,我们希望收到的消息跟发送消息一模一样。 不过实际收到的消息 却是:     ?????问题出在哪里?要知道,一条消息从发送到接收经历了 发送端 --> MQ Server,MQ Server --> 接收端 的过程。任何一个环节的字符编码出了问题都有可能出现乱码。凡涉及中文乱码的问题,解起

i love this game 2533

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Websphere MQ 简单调用

最近在学习IBM MQ,在网上cope了一段代码,稍作整理,执行了一下,代码如下:import com.ibm.mq.*;public class MQJavaProc { /**  * 简单的发送消息程序  */ public static void Typesetter() {  try {   // 主机名称   String hostName = "MQHOST";   /

hyg_buaa的专栏 4644

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

MQ资源管理器队列中消息中文乱码问题

Q:在JAVA中连接MQ,放入一条含有中文的消息,在远程服务器队列中显示的中文就是乱码 A:加如下两句代码 MQMessage outMsg = new MQMessage(); outMsg.encoding = MQEnvironment.CCSID; outMsg.characterSet = MQEnvironment.CCSID;

兔子临死前的专栏 9987

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Spring整合JMS、IBM MQ发送和接收消息

最近才接触到MQ,由于之前完全不知道是干嘛用的,还是很花了一点时间研究的~先来简单解释一下名词啦一、名词解释 MQMQ(message queue)指消息队列,是应用程序对应用程序的通信方法。可以利用消息队列暂存数据报文。 MQ的原理其实就是生产者-消费者模式。有关生产者-消费者模式的详细解释可以看这篇博文http://blog.youkuaiyun.com/yolanda_nuonuo/article/de

Yolanda_NuoNuo的专栏 1万+

java调用mq中文乱码_解决ActiveMQ中,Java与C++交互中文乱码问题

最近在尝试使用ActiveMQ做系统间的继承,当然少不了Java和C++客户端的交互问题。由于Java与C++在字符串上采用了不同方式的编码(Java-Unicode, C++ - ascii)造成了文本数据传输过程中的编码问题, 下面记录一下解决方环境:C++ 端:操作系统: Win7JMS客户端: CMS 3.1.2 (新版本的CMS需要VS2008编译)开发环境:...

weixin_39619893的博客 655

IBM MQ 的JAVA使用案例

ibmmq

学长抄作业(codeying)博客codeying.top 4060

IBM MQ 字符集问题

此文所述MQ指的是IBM的MQ通信中间件。 Linux下的MQ默认字符集时819 Windows平台下的IBM MQ默认字符集时1381 用java代码访问MQ队列时,使用的CCSID指的就是字符集,其中1381时不需要转码,如果时使用819则需要将其转换为UTF-8编码。

UPUP 1万+

activemq消息数据显示??乱码

今天测试一个数据从IBM队列转发到activemq队列, 在通过activemq管理页面打开发现,中文居然是???。 怀疑有三点: 1、是从IBM队列取出来因为编码格式不对,而导致的。 我自己单独发送了中文,到了队列里,发现依然是乱码,那看来不是IBM队列的锅 2、本身代码的格式? 把自己项目的所有编码都改成了UTF-8 ,重新测试,仍旧是乱码。也不是项目的锅 询问同...

天翔空水木的专栏 2695

ibm mq在java工程中使用bytesmessage,使用JMS客户端处理MQ ByteMessage

I am using IBM MQ and Java to write a message as Bytes on to the queue. Problem here i am getting here is while reading this message from JMS client offcourse that is expected format,i am getting as "...

weixin_39714164的博客 486

java jms接口,如何在IBM MQ JMS接口上使用JMS属性?

I'm using MQ JMS interface with MQ 6.0.2.It seems that only pre defined properties are suported and not arbitrary ones.for instance, I can properly getJMSCorrelationID(), getJMSPriority() etc. However...

weixin_39612653的博客 244

IBMMQ 用JMS 文件传输

对于MQ传输文件,我采取的思路是: 1、获取文件流,然后转为byte[ ] 传输文件 2、接受者 用BytesMessage接受byte数据 -------------------------废话少说,看代码------------------------------- 需要的导包 <!--ibm mq--> <dependency> <groupId>org.springframework</groupId> <..

XiaoNiao2o的博客 1353

004_Queue消息模式发送文本消息

1. 新建一个名为JMSActiveMQTextMessage的Java项目, 同时拷入相关jar包 2. 编辑QueueTextMessageProducer.java package com.jmsapp.qtm; import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.Destination; import javax.jms.JMSException; import javax.j

aihiao的专栏 254

以字节流读取文件时中文乱码解决(二)

以字节流读取文件时中文乱码解决

HanyuKing的博客 1万+
上一篇: Windows发布Spring boot
下一篇: Spring boot 配置多环境的logback
哲学是个什么东东
博客等级 码龄10年 16粉丝 11原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值