讲师博文
安卓程序解决网络传输乱码问题 来源 : 未知     2014-09-19

网络传输是安卓程序中极其重要的一个环节,特别是物联网的应用中,从节点采集数据,显示数据,再向节点发送数据。

一般情况下,向节点发送的命令都是由字符串拼接而成,而节点地址却不同,在网络中是以字节流的方式进行传输,这就涉及到了一些转码方面的知识,这里不做深入地讲解,只是简单介绍一下byte类型转换成string类型中间解决乱码问题的方法。

在实际项目中,传输一般的地址并不需要进行特殊的转换,但是当byte类型中高位是1的时候有可能会在接收端收到非正确的多余字符,这是由于网络传输中转码产生的问题。

Java使用的是unicode型的字符,与C语言接收到的ascii编码有一定的区别,所以,我们在发送的时候一定要做一些处理,如下代码显示:

return new String(temp2, "ISO8859-1");

其中temp2是byte类型的数组,ISO/IEC8859-1,又称Latin-1或“西欧语言”,是标准化组织内ISO/IEC 8859的第一个8位字符集。

发送的代码如下所示:

out = new DataOutputStream(socket.getOutputStream());

out.write(data.getBytes("ISO8859-1"));

插入字符串的时候使用"ISO8859-1"编码方式来转换编码,发送的时候再使用"ISO8859-1"方式把字符串类型转换回来,这样发送就能解决乱码的问题。

扫码申领本地嵌入式教学实录全套视频及配套源码

上一篇:基于FS4412内核移植之DM9000网卡驱动添加

下一篇:第1章 Contiki Hello World实验

400-611-6270

Copyright © 2004-2024 华清远见教育科技集团 版权所有
京ICP备16055225号-5京公海网安备11010802025203号