PB9,Winsock接口,获取到仪器发的数据,GBK码解码问题

Moriarty88h 2021-02-18 11:01:14
PB9,Winsock.pbl接口,获取到仪器发的数据,GBK码的BLOB类型,无法String()获取出来

仪器发送了900多个字符

一开始 直接 String(BLOB) 只能获取到第一个开始符

FromAnsi(BLOB) 也无效,什么都没有返回

FromUnicode(BLOB) 也无效,什么都没有返回

升级到12.5
string(BLOB,encodingansi!) 也是 什么都没有返回

对方仪器用C#写的程序。声称是GBK编码

的确有数据接到BLOB里面,但是无法String()出来

Winxp的中文系统

使用第三方工具,能正常接收出来数据,所以我觉得 和WinXP应该没关系

查了 很多资料,发生吗GBK不是编码,而是字符集。。。。。。原来还有点思路的,一下子 又没有了
...全文
441 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Moriarty88h 2021-02-24
  • 打赏
  • 举报
回复
解决了,这TMD就不是 解码的问题 , 仪器发过来的字符串里面 里面有 Null 的 char BLOB类型 用 String() 转字符的时候 就是失败了 用 BLOBMID 切掉开头的4个 Null 的char ,然后再String() 就可以了 所以一开始的方向就错了 ,GBK是不需要解码,它本身就是ASC码的扩展。直接用就可以 一直转不出来的原因 就是 有 Null再字符串里面。 这次用的方法 先用 FileWiter吧 BLOB类型 写到文件里面,然后用记事本打开,就可以看出来 Null再开头的位置

680

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder API 调用
社区管理员
  • API 调用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧