184 01 Android 零基础入门 03 Java常用工具类03 Java字符串 02 String类 04 例:字符串与byte(即:字节)数组间的相互转换 184 01 Android 零基础入门 03 Java常用工具类03 Java字符串 02 String类 04 例:字符串与byte(即:字节)数组间的相互转换 引言 例:字符串与byte数组间的相互转换

本文知识点: 例:字符串与byte数组间的相互转换

说明:因为时间紧张,本人写博客过程中只是对知识点的关键步骤进行了截图记录,没有对截图步骤进行详细的文字说明(后面博主时间充裕了,会对目前的博客编辑修改,补充上详细的文字说明);有些步骤和相关知识点缺乏文字描述,可能会难以理解。读者如有不明之处,欢迎博客私信或者微信(本人微信在博客下方的“关于博主”处)与本人交流,共同进步

引言

接下来我们介绍一下String类中getBytes()方法的使用,这个方法引出了一个问题,也就是字符串和字节数组之间的相互转换。

其实,我们在实际开发中,会遇到很多类似的问题。比如说,我们将数据传输到网络上,那这时候呢,网络上传输的数据就是二进制字节型的,我们需要把我们的字符串转换成二进制的形式进行传输。
在接受到数据之后,我们又需要把字节型数据转换为字符串。

所以getBytes()方法还是非常有用的。

例:字符串与byte数组间的相互转换

字符串转换为byte数组
184 01 Android 零基础入门  03 Java常用工具类03 Java字符串 02 String类 04 例:字符串与byte(即:字节)数组间的相互转换
184 01 Android 零基础入门  03 Java常用工具类03 Java字符串 02 String类 04 例:字符串与byte(即:字节)数组间的相互转换
引言
例:字符串与byte数组间的相互转换
184 01 Android 零基础入门  03 Java常用工具类03 Java字符串 02 String类 04 例:字符串与byte(即:字节)数组间的相互转换
184 01 Android 零基础入门  03 Java常用工具类03 Java字符串 02 String类 04 例:字符串与byte(即:字节)数组间的相互转换
引言
例:字符串与byte数组间的相互转换
上面的二进制字节数据,其实是和编码有关系的。
因为使用的是mac的电脑,eclipse默认的工程编码格式是:UTF-8。(windows下默认是GBK)
184 01 Android 零基础入门  03 Java常用工具类03 Java字符串 02 String类 04 例:字符串与byte(即:字节)数组间的相互转换
184 01 Android 零基础入门  03 Java常用工具类03 Java字符串 02 String类 04 例:字符串与byte(即:字节)数组间的相互转换
引言
例:字符串与byte数组间的相互转换
184 01 Android 零基础入门  03 Java常用工具类03 Java字符串 02 String类 04 例:字符串与byte(即:字节)数组间的相互转换
184 01 Android 零基础入门  03 Java常用工具类03 Java字符串 02 String类 04 例:字符串与byte(即:字节)数组间的相互转换
引言
例:字符串与byte数组间的相互转换

byte数组转换为字符串
184 01 Android 零基础入门  03 Java常用工具类03 Java字符串 02 String类 04 例:字符串与byte(即:字节)数组间的相互转换
184 01 Android 零基础入门  03 Java常用工具类03 Java字符串 02 String类 04 例:字符串与byte(即:字节)数组间的相互转换
引言
例:字符串与byte数组间的相互转换
184 01 Android 零基础入门  03 Java常用工具类03 Java字符串 02 String类 04 例:字符串与byte(即:字节)数组间的相互转换
184 01 Android 零基础入门  03 Java常用工具类03 Java字符串 02 String类 04 例:字符串与byte(即:字节)数组间的相互转换
引言
例:字符串与byte数组间的相互转换
以上可以正常转换,是在字符串和数组编码格式都一致的情况下。

如果不一致怎么办呢?使用带有字符集参数的方法
184 01 Android 零基础入门  03 Java常用工具类03 Java字符串 02 String类 04 例:字符串与byte(即:字节)数组间的相互转换
184 01 Android 零基础入门  03 Java常用工具类03 Java字符串 02 String类 04 例:字符串与byte(即:字节)数组间的相互转换
引言
例:字符串与byte数组间的相互转换
184 01 Android 零基础入门  03 Java常用工具类03 Java字符串 02 String类 04 例:字符串与byte(即:字节)数组间的相互转换
184 01 Android 零基础入门  03 Java常用工具类03 Java字符串 02 String类 04 例:字符串与byte(即:字节)数组间的相互转换
引言
例:字符串与byte数组间的相互转换

中文乱码问题

写了GBK参数后,出现异常错误
184 01 Android 零基础入门  03 Java常用工具类03 Java字符串 02 String类 04 例:字符串与byte(即:字节)数组间的相互转换
184 01 Android 零基础入门  03 Java常用工具类03 Java字符串 02 String类 04 例:字符串与byte(即:字节)数组间的相互转换
引言
例:字符串与byte数组间的相互转换
184 01 Android 零基础入门  03 Java常用工具类03 Java字符串 02 String类 04 例:字符串与byte(即:字节)数组间的相互转换
184 01 Android 零基础入门  03 Java常用工具类03 Java字符串 02 String类 04 例:字符串与byte(即:字节)数组间的相互转换
引言
例:字符串与byte数组间的相互转换

184 01 Android 零基础入门  03 Java常用工具类03 Java字符串 02 String类 04 例:字符串与byte(即:字节)数组间的相互转换
184 01 Android 零基础入门  03 Java常用工具类03 Java字符串 02 String类 04 例:字符串与byte(即:字节)数组间的相互转换
引言
例:字符串与byte数组间的相互转换

运行程序,结果出现不同。英文和空格没有问题,但是中文我们完全不认识。
184 01 Android 零基础入门  03 Java常用工具类03 Java字符串 02 String类 04 例:字符串与byte(即:字节)数组间的相互转换
184 01 Android 零基础入门  03 Java常用工具类03 Java字符串 02 String类 04 例:字符串与byte(即:字节)数组间的相互转换
引言
例:字符串与byte数组间的相互转换

这是因为,我们字符串转换为字节数组时,我们使用的是UTF-8这个默认的编码格式,但是从字节数组转回字符串时,我们使用的却是GBK编码格式。

如果我们就是要使用GBK转换,那么,我们的getBytes()方法中就要做一些修改了。
也有带字符集参数的getBytes()方法。
184 01 Android 零基础入门  03 Java常用工具类03 Java字符串 02 String类 04 例:字符串与byte(即:字节)数组间的相互转换
184 01 Android 零基础入门  03 Java常用工具类03 Java字符串 02 String类 04 例:字符串与byte(即:字节)数组间的相互转换
引言
例:字符串与byte数组间的相互转换

字符串转换为字节数组和字节数组转回字符串,只要前后使用的编码格式一致,就不会出现问题。
所以,一定要保持字符集一致,这个,是我们在Java中经常会遇到的一个问题,即:中文乱码问题。
184 01 Android 零基础入门  03 Java常用工具类03 Java字符串 02 String类 04 例:字符串与byte(即:字节)数组间的相互转换
184 01 Android 零基础入门  03 Java常用工具类03 Java字符串 02 String类 04 例:字符串与byte(即:字节)数组间的相互转换
引言
例:字符串与byte数组间的相互转换

注意:在工程新建时,就要确定项目编码格式,然后设置好。否则,项目进行途中,修改编码格式,会非常麻烦。很多乱码都要再一一修改,比较繁琐。
184 01 Android 零基础入门  03 Java常用工具类03 Java字符串 02 String类 04 例:字符串与byte(即:字节)数组间的相互转换
184 01 Android 零基础入门  03 Java常用工具类03 Java字符串 02 String类 04 例:字符串与byte(即:字节)数组间的相互转换
引言
例:字符串与byte数组间的相互转换

小结

184 01 Android 零基础入门  03 Java常用工具类03 Java字符串 02 String类 04 例:字符串与byte(即:字节)数组间的相互转换
184 01 Android 零基础入门  03 Java常用工具类03 Java字符串 02 String类 04 例:字符串与byte(即:字节)数组间的相互转换
引言
例:字符串与byte数组间的相互转换
184 01 Android 零基础入门  03 Java常用工具类03 Java字符串 02 String类 04 例:字符串与byte(即:字节)数组间的相互转换
184 01 Android 零基础入门  03 Java常用工具类03 Java字符串 02 String类 04 例:字符串与byte(即:字节)数组间的相互转换
引言
例:字符串与byte数组间的相互转换