递归火山软件开发平台

标题: 编码BUG [打印本页]

作者: urenai    时间: 2022-9-25 07:02
标题: 编码BUG
视窗 传输 数据 到 安卓,数据:文本到UTF8(“1,2”)
安卓接收数据, 字节数组到文本() 得到文本后    正则分割文本()
数组[1]=“2”   不等于。

很困惑。




我猜肯定是有尾巴,所以视窗部分 文本到UTF8(“1,2”,假)  意思是不带 00 结尾。

这时候  安卓部分 数组[1]=“2”    等于了。






作者: b0y    时间: 2022-9-25 08:36
这个尾巴 应该什么时候带 什么时候不带呢....  有点懵
作者: shuimiao    时间: 2022-9-25 09:05
尾巴一般都不用带。所以这个参数应当默认为假才对
作者: 创世魂    时间: 2022-9-25 10:32
文本到utf8  将参数设置为假就行了。  如果要和其它的进行通讯交互,就全部设置为假
作者: urenai    时间: 2022-9-25 10:53
你们都没懂我的本意,既然安卓端是文本处理,那么就不应该带尾巴,因为 00就是终止符。
作者: Xelloss0618    时间: 2022-9-25 10:58
本帖最后由 Xelloss0618 于 2022-9-25 11:00 编辑
b0y 发表于 2022-9-25 08:36
这个尾巴 应该什么时候带 什么时候不带呢....  有点懵

网络通讯一般不带结尾0字符,但跟系统API和其他C++库传参时,一般是需要的
作者: Xelloss0618    时间: 2022-9-25 11:14
urenai 发表于 2022-9-25 10:53
你们都没懂我的本意,既然安卓端是文本处理,那么就不应该带尾巴,因为 00就是终止符。 ...

安卓端的文本型是直接用 Java 的 String,不像视窗是老吴自己写的。
所以这不是bug,是 Java 自身的特性。
Java 的 String 没有字符串结束标志,你传了\0字符进去,肯定会有些错乱的
作者: urenai    时间: 2022-9-25 11:23
Xelloss0618 发表于 2022-9-25 11:14
安卓端的文本型是直接用 Java 的 String,不像视窗是老吴自己写的。
所以这不是bug,是 Java 自身的特性 ...

原来如此,我不懂才提的。现在明白了。




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4