C#接收WebSphere MQ中文乱码问题
2024-10-17 07:34:35
最近在用IBM的WebSphere MQ做数据传输,客户端操作系统Windows,服务器是AIX,我们用的都是UTF-8编码,但是联调时发现带中文的都出现了乱码。折腾了好久才发现问题,原来是CCSID的问题。虽然发送方客户端、接收方客户端和服务器的CCSID都是819,但是就是这个819惹的祸。819对应的编码是ISO-8859-1,支持大部分的西欧字符,但是却不支持中文。所以即使客户端用UTF-8进行数据发送,服务器还是会以CCSID对应的ISO-8859-1编码进行数据保存,所以从它里面取数据的时候用UTF-8编码取数据,取到的是以ISO-8859-1编码的数据。
解决方法:
以ISO-8859-1编码读服务器数据,然后再用UTF-8编码转换即可。
例如:
string dataXML= mqMessage.ReadString(mqMessage.Length);
byte[] byteArry=System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(dataXML);
dataXML=System.Text.Encoding.UTF8.GetString(byteArry);//将字符串转换为UTF-8类型
再给个CCSID相关的文章:http://blog.chinaunix.net/uid-24946452-id-2158886.html
最新文章
- iOS之UI--富文本总结
- Redis3.20阅读-SDS实现
- 作业七:团队项目——Alpha版本冲刺阶段009
- 常用的数据统计Sql 总结(转)
- 一篇搞定RSA加密与SHA签名|与Java完全同步
- Zookeeper未授权访问
- 使用DD_belatedPNG让IE6支持PNG透明图片
- 转-android图片降低图片大小保持图片清晰的方法
- *ecshop 模板中foreach用法详解
- js COOKIE 记住帐号或者uuid
- 《WPF程序设计指南》读书笔记——第6章 Dock与Grid
- 使用gulp在开发过程中合理导出zip文件
- GraphLab介绍[转]
- 自学Python2.2-基本数据类型-列表list(object)
- mybatis choose标签的使用
- Unity C#用WWW操作数据库
- Image 上传下载Api
- javascript 编程风格 部分精要
- matlab中输入x. 与x的区别
- 内联函数 —— C 中关键字 inline 用法解析