新手请教个问题,关于复制来的字符串和自己打的字符串
为了实现这个,我先写了个去空格vi,自己在输入框输入 1 7 @ 6 6 1 0 就会得到 17@6610
如下图
但是,当我真正从UDP接收到的时候却毫无作用,并没有去空格。
而且,让我搞不懂的是,在失败的显示框上复制得来的字符串竟然也没能成功,下图这样
也就是说,我自己键盘输入的才能成功,复制过来的就不行?有点不太懂,请教一下,是格式的问题吗?
从UDP接收却失败
应该的结果
可能说的有点迷糊,简单来说,就是如果不是我一个个输入字母,他就不能正确处理
不贴程序,谁能找出问题。
不是程序的问题啊,应该是编码的问题,接收到的是unicode编码字符串,和我直接输入的字符串是不是处理上不一样....
有道理
你把接受来的字符串上面右击,设置为默认值,单独把这个VI(包含发来的字符串)上传试试。
你以为你看不见的字符串就是空格吗?右击字符串显示控件,选择代码显示
大神说得对啊!但我还是不太懂,“1 6”正常的代码显示是1\s6 ,而得到的数据“1 6”却是“3100 3600 ”,不太懂啊?
不不,写错了,是“1\006\00”,刚才换成16进制了
感谢提醒啊,我接受到的看起来是数据“1 6”,代码显示是“1\006\00”,和我自己输入的“1\s6”不一样啊,所以我把看不见的简单当成空格处理了,就处理不了了,可是“1\006\00”到底是个什么编码啊?我现在可以把“\00”替换掉来实现"1 6"变成“16”的目标。
VI就是这样,不好意思刚学写的像狗啃的一样,大致意思就是把“1 6 @ 6 6 1 0 ”给截取成“16”和“6610”2个数字段再处理
我现在还是没办法解决ascii码 \00的情况,暂时只能截取字符串再拼接了
UDP 协议?
没用 TCP?
简单的小程序,就用了udp
学习学习
自己要搞清楚数据类型
串口或TCPip传过来的到底是什么类型
我们一般用的字符串是什么类型