清泛IT社区

标题: AsciiConversion 拓展问题:字母开头的会出现“C2”非预期字符 [打印本页]

作者: App Inventor 2     时间: 2024-09-23 20:44
标题: AsciiConversion 拓展问题:字母开头的会出现“C2”非预期字符

做TCP通讯时遇到的问题,主要问题是:列表如果是字母开头就会出问题

(, 下载次数: 142)

发送这个列表
(, 下载次数: 161)

字母开头的都有这个问题,文本显示没有问题。

上面那个是程序 ,下面这个是测试工具
(, 下载次数: 138)

作者: App Inventor 2     时间: 2024-09-24 21:20
标题: AsciiConversion 拓展问题:字母开头的会出现“C2”非预期字符
测试了一下:
1、ClientSocket拓展默认是字符串模式,可以通过hexaStringMode设置为二进制模式,此时需要传入二进制数组,而原生并没有这个数据结构,使用拓展可以实现:UrsAI2ByteArray 字节数组扩展:读写二进制数据 - App Inventor 2 拓展

2、字符串模式下,使用Ascii拓展将二进制列表转换成字符串再发送,当二进制为0~127时,能够正常转换发送并还原二进制值,但是 >127的二进制还原后前面多了一个C2字节,大概是Ascii拓展内部判断它不是有效ASCII码时加上的。

3、0~127 是有效的ASCII码范围。128~255 是拓展码,是一些特殊字符,一般很少使用。

作者: yyszx    时间: 2024-09-25 21:12
我测试了几个TCP插件,基本都不支持hex透传,只支持assic数据传输
作者: App Inventor 2     时间: 2024-09-26 15:02
yyszx 发表于 2024-09-25 21:12
我测试了几个TCP插件,基本都不支持hex透传,只支持assic数据传输

是的,目前只能发送文本。hexaStringMode为true模式,也只是把二进制表面上转成字符串发送,如:0x012 —> “303132”。

也许可以考虑2个方向:
1、字节数组,我后面也会试试
2、考虑改造拓展,加一个二进制接口
作者: yyszx    时间: 2024-09-27 09:36
App Inventor 2  发表于 2024-09-26 15:02
是的,目前只能发送文本。hexaStringMode为true模式,也只是把二进制表面上转成字符串发送,如:0x012 —> ...

期待好消息




欢迎光临 清泛IT社区 (https://bbs.tsingfun.com/) Powered by Discuz! X3.3