[b]问题描述:[/b]
用java写了一个向MQ队列发送消息的程序,MQEnvironment.CCSID = 1381并且队列的CCSID也是1381。但是在WebSphere MQ资源管理器中浏览队列消息时,发现数据的格式是空白,CCSID是819,编码是273。并且消息里面的中文都是乱码。折腾了一下午终于找到问题的根源,原来是MQMessage这个类在作怪。它继承了MQMD这个类,这个类包含发送消息的控制信息。其中就包含上述三个属性的配置,默认值就是上面给出的,详细信息请查阅官方文档。
[b]解决方法:[/b]
// Define a simple WebSphere MQ Message ...
[color=blue]MQMessage msg = new MQMessage();
msg.encoding = 546;
msg.characterSet = 1381;
msg.format = MQConstants.MQFMT_STRING;[/color]
[b]问题总结:[/b]
官方文档相当的不靠谱,数据不好听的网络语“坑爹呢”。文档中给出encoding属性的宏中根本就没有对应546的定义,characterSet 属性的宏也没有对应1381的定义。
官方文档:
[url]http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0m0/index.jsp?topic=%2Fcom.ibm.mq.doc%2Fhelp_home_wmq.htm[/url]
注:文章来源[url]http://zrcoffee.iteye.com/blog/1172344[/url]
用java写了一个向MQ队列发送消息的程序,MQEnvironment.CCSID = 1381并且队列的CCSID也是1381。但是在WebSphere MQ资源管理器中浏览队列消息时,发现数据的格式是空白,CCSID是819,编码是273。并且消息里面的中文都是乱码。折腾了一下午终于找到问题的根源,原来是MQMessage这个类在作怪。它继承了MQMD这个类,这个类包含发送消息的控制信息。其中就包含上述三个属性的配置,默认值就是上面给出的,详细信息请查阅官方文档。
[b]解决方法:[/b]
// Define a simple WebSphere MQ Message ...
[color=blue]MQMessage msg = new MQMessage();
msg.encoding = 546;
msg.characterSet = 1381;
msg.format = MQConstants.MQFMT_STRING;[/color]
[b]问题总结:[/b]
官方文档相当的不靠谱,数据不好听的网络语“坑爹呢”。文档中给出encoding属性的宏中根本就没有对应546的定义,characterSet 属性的宏也没有对应1381的定义。
官方文档:
[url]http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0m0/index.jsp?topic=%2Fcom.ibm.mq.doc%2Fhelp_home_wmq.htm[/url]
注:文章来源[url]http://zrcoffee.iteye.com/blog/1172344[/url]