urenai 发表于 2022-9-25 07:02:41

编码BUG

视窗 传输 数据 到 安卓,数据:文本到UTF8(“1,2”)
安卓接收数据, 字节数组到文本() 得到文本后    正则分割文本()
数组=“2”   不等于。

很困惑。

static/image/hrline/4.gif


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

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





b0y 发表于 2022-9-25 08:36:07

这个尾巴 应该什么时候带 什么时候不带呢....有点懵

shuimiao 发表于 2022-9-25 09:05:01

尾巴一般都不用带。所以这个参数应当默认为假才对

创世魂 发表于 2022-9-25 10:32:28

文本到utf8将参数设置为假就行了。如果要和其它的进行通讯交互,就全部设置为假

urenai 发表于 2022-9-25 10:53:59

你们都没懂我的本意,既然安卓端是文本处理,那么就不应该带尾巴,因为 00就是终止符。

Xelloss0618 发表于 2022-9-25 10:58:26

本帖最后由 Xelloss0618 于 2022-9-25 11:00 编辑

b0y 发表于 2022-9-25 08:36
这个尾巴 应该什么时候带 什么时候不带呢....有点懵
网络通讯一般不带结尾0字符,但跟系统API和其他C++库传参时,一般是需要的

Xelloss0618 发表于 2022-9-25 11:14:39

urenai 发表于 2022-9-25 10:53
你们都没懂我的本意,既然安卓端是文本处理,那么就不应该带尾巴,因为 00就是终止符。 ...

安卓端的文本型是直接用 Java 的 String,不像视窗是老吴自己写的。
所以这不是bug,是 Java 自身的特性。
Java 的 String 没有字符串结束标志,你传了\0字符进去,肯定会有些错乱的

urenai 发表于 2022-9-25 11:23:16

Xelloss0618 发表于 2022-9-25 11:14
安卓端的文本型是直接用 Java 的 String,不像视窗是老吴自己写的。
所以这不是bug,是 Java 自身的特性 ...

原来如此,我不懂才提的。现在明白了。
页: [1]
查看完整版本: 编码BUG