zoukankan      html  css  js  c++  java
  • 184 01 Android 零基础入门 03 Java常用工具类03 Java字符串 02 String类 04 例:字符串与byte(即:字节)数组间的相互转换

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

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

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

    引言

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

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

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

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

    字符串转换为byte数组
    mark
    mark
    上面的二进制字节数据,其实是和编码有关系的。
    因为使用的是mac的电脑,eclipse默认的工程编码格式是:UTF-8。(windows下默认是GBK)
    mark
    mark

    byte数组转换为字符串
    mark
    mark
    以上可以正常转换,是在字符串和数组编码格式都一致的情况下。

    如果不一致怎么办呢?使用带有字符集参数的方法
    mark
    mark

    中文乱码问题

    写了GBK参数后,出现异常错误
    mark
    mark

    mark

    运行程序,结果出现不同。英文和空格没有问题,但是中文我们完全不认识。
    mark

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

    如果我们就是要使用GBK转换,那么,我们的getBytes()方法中就要做一些修改了。
    也有带字符集参数的getBytes()方法。
    mark

    字符串转换为字节数组和字节数组转回字符串,只要前后使用的编码格式一致,就不会出现问题。
    所以,一定要保持字符集一致,这个,是我们在Java中经常会遇到的一个问题,即:中文乱码问题。
    mark

    注意:在工程新建时,就要确定项目编码格式,然后设置好。否则,项目进行途中,修改编码格式,会非常麻烦。很多乱码都要再一一修改,比较繁琐。
    mark

    小结

    mark
    mark

  • 相关阅读:
    Redis详解(一)- redis的简介与安装
    集合-全部集合概览
    集合-LinkedList源码解析
    集合-ArrayDeque源码解析
    集合-DelayQueue源码解析
    集合-ConcurrentLinkedQueue 源码解析
    集合-LinkedTransferQueue源码解析
    集合-PriorityBlockingQueue 源码解析
    集合-SynchronousQueue 源码解析
    集合-LinkedBlockingQueue 源码解析
  • 原文地址:https://www.cnblogs.com/xlfcjx/p/13859140.html
Copyright © 2011-2022 走看看