最近在做一个流水线的接口,连接的是日立生化和雅培化学发光。流水线软件提供商提供了基于HL7的通讯协议,其要求发发送完整的病人信息。
之前和迈瑞等一些国产仪器做LIS接口时,他们提供的通讯方案,也是只支持网口,并且通讯协议是HL7,之前因为没有强制要求发送或者解析带有中文信息的数据,所以一直都是用ASCII编码,关于乱码的问题也没有处理。
而这一次仪器厂家需要病人的信息,而这些内容大都是中文,尝试用他们的软件发送了一段测试信息,在网口测试工具显示是中文无乱码,所以肯定是解码存在问题,就此取的该数据的二进制数据,尝试进行解析。
误区
通讯文档中有一个节点,说明编码是UTF-8,然而通过HexToString方法指定了几种常见的编码,包括UTF-8时,均无效果。
解决
感觉自己已经用穷举法试遍了所有的编码,为什么仍然不行呢。然后就去网上搜常见的编码格式,一个“Default”引起了我的注意,然后……就是他了。
_(:з」∠)_
回顾了一下,一个小小的编码格式也折磨了半天,不过终于解决了很久以来的一个困惑。不过我和信息科科长说这个事情的时候,他突然问了一句,那以后我装系统是不是只能装简体中文……
关于16进制转字符串,可以参考我之前的文章,不过在网上搜相关资料的时候,发现了一段代码挺简洁的,出处的话我忘记了,好像说是微软提供的:</