寻找MQ消息中文乱码问题的解决办法!

[复制链接]
查看11 | 回复4 | 2007-10-20 08:38:44 | 显示全部楼层 |阅读模式
我在JAVA中连接MQ。放入一条XML格式的消息。
在MQMessage hello_world = new MQMessage();时,我用
hello_world.writeUTF(bf.toString());写入消息。其中bf.toString()返回的是一个字符串。
队列中显示的中文就是乱码,我该如何解决!
谢谢!
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
writeUTF写的内容只能用readUTF读
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
不知道这个问题有人解决了吗>
小弟也遇到此问题,搞了一天
尝试修改了CCSID,但没有作用,不知哪位大哥可以指教下!
谢谢!
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
我也是乱码问题,各种方法都试过了,还是不行,上面二位解决了么?求指点..
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
我找到解决方案了,贴出来给需要的人查询.两种方案:
1.在写入和读取都是用object方式.即写入用writeObject(object)方法,读取用readObject(object)方法.这样用java读取出来不会乱码,但是在MQ资源管理器中,因为写入的是一个对象,所以看不出写入的内容.
2.在写入的时候,用write(bytes)方法.在读取的时候用readStringOfByteLength(inMsg.getMessageLength())方法,这样在mq资源管理器和java代码读取出来的数据,都不会乱码.
发送代码示例:
// 定义一个简单的消息
MQMessage putMessage = new MQMessage();
// 将数据放入消息缓冲区
// 设置写入消息的属性(默认属性)
putMessage.write(message.getBytes());
接收代码示例:
msg = inMsg.readStringOfByteLength(inMsg.getMessageLength());
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行