MQ 字符格式、编码和CCSID的问题

本文介绍了一种解决WebSphere MQ中发送消息时出现中文乱码的方法。问题出现在使用MQMessage类时,通过调整其encoding和characterSet属性为特定值,成功解决了中文乱码的问题。
部署运行你感兴趣的模型镜像

问题描述:

用java写了一个向MQ队列发送消息的程序,MQEnvironment.CCSID = 1381并且队列的CCSID也是1381。但是在WebSphere MQ资源管理器中浏览队列消息时,发现数据的格式是空白,CCSID是819,编码是273。并且消息里面的中文都是乱码。折腾了一下午终于找到问题的根源,原来是MQMessage这个类在作怪。它继承了MQMD这个类,这个类包含发送消息的控制信息。其中就包含上述三个属性的配置,默认值就是上面给出的,详细信息请查阅官方文档。

 

解决方法:

 

// Define a simple WebSphere MQ Message ...

MQMessage msg = new MQMessage();

msg.encoding = 546;

msg.characterSet = 1381;

msg.format = MQConstants.MQFMT_STRING;

 

问题总结:

官方文档相当的不靠谱,数据不好听的网络语“坑爹呢”。文档中给出encoding属性的宏中根本就没有对应546的定义,characterSet 属性的宏也没有对应1381的定义

 

官方文档:http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0m0/index.jsp?topic=%2Fcom.ibm.mq.doc%2Fhelp_home_wmq.htm

 

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值