关于Java里面的String.getBytes()方法

Java里面的String类型的编码方式是Unicode,根据你项目字符串的编码方式无关,这是写死的。但是如果你jvm平台使用的是GBK编码方式,那么你通过string里面的getBytes()方式获取的字符的字节是2。如果使用的是UTF-8编码的方式,那么一个字符getBytes()方式获取的字符的字节长度应该是3.

下面给个例子进行展示:

String str ="你好";          //project的字符集是UTF-8
byte[] B = str.getBytes();   //所以这里默认应该使用UTF-8进行编码
System.out.println(B.length);
System.out.println(Charset.defaultCharset());//结果是:(果然是6)
//6
//UTF-8

这里的**str.getBytes()**方法官方给出的解释是:

Encodes this String into a sequence of bytes using the platform’s default charset, storing the result into a new byte array.

就是说**getBytes()**函数会根据平台的默认字符串返回byte[]数组,这个platform’s default charset并跟操作系统有关。当然你可以在Eclipse中设置你的项目使用的编码方式,更改项目文件的编码方式能改变平台的中的默认编码方式。

在Eclipse中可以通过选定项目,然后通过上方的工具栏Project–>Properties–>Resource处更改项目编写的文件的encoding方式。

如果我更改成默认的GBK,那么下面的例子返回的字节长度就会变成4

String str ="你好";          //project的字符集是GBK
byte[] B = str.getBytes();   //
System.out.println(B.length);
System.out.println(Charset.defaultCharset());//结果是:
//4
//GBK

关于Java里面的String.getBytes()方法相关推荐

  1. 如何给女朋友解释为什么Java里面的String对象是不可变的?

    点击关注公众号,Java干货及时送达 String的不变性 String在Java中特别常用,相信很多人都看过他的源码,在JDK中,关于String的类声明是这样的: public final cla ...

  2. java里面的string类型,java中的String类型(不知道理解的好不,请教大神)

    当执行String a = "abc"; 时候(前提条件是:执行这行代码之前在常量池中没有abc,若有,a直接引用在常量池中abc不在创建一个对象,若无,执行下面的描述) java ...

  3. Simple java里面的paint(Graphics g)的理解

    以前写画图板时,总不理解什么时候要调用这个方法,老师说:你写了paint(g)方法后,在窗体改变时,就会调用,可是不太理解. 没写paint(g)的演示:画图板v1 1:绘制简单直线 2.执行最小化操 ...

  4. JAVA里面的int类型 和Integer类型,有什么不一样

    JAVA里面的int类型 和Integer类型,有什么不一样 原创 2013年09月04日 23:15:11 标签: java / 2120 编辑 删除 JAVA里面的int类型 和Integer类型 ...

  5. Java中的String.hashCode()方法可能有问题?

    过去几天,我一直在浏览Reddit上的一篇文章.这篇文章看得我要抓狂了.文章指出,Java中的String.hashCode()方法(将任意长度的字符串对象映射成32位int值)生成的哈希值存在冲突. ...

  6. SWIFT MX报文基础函数与Java语言中String的方法对照理解

    SWIFT MX报文基础函数与Java语言中String的方法对照理解 前言 一.SWIFT是什么? 二.SWIFT MX是什么? 二.报文基础函数与Java语言中String的方法对照表 总结 前言 ...

  7. postman里面的mockserver使用方法

    最近更新的时候postman推荐了个好玩的功能–mockserver.相信用过fiddle的同学都用过fiddle的mockserver,那可是测试工程师的神器,今天就来玩下postman里面的moc ...

  8. java里面的ture和false

    java里的ture和false不像c++中的bool型变量,在c++中ture和false都是有值的,分别为1和0,并且可以比较大小. 例如:(3>4)的值为0,(44)的值为1.所以(44) ...

  9. java里arraylist删除节点方法_Java之——删除ArrayList中的反复元素的2种方法

    ArrayList是Java中最经常使用的集合类型之中的一个.它同意灵活加入多个null元素,反复的元素,并保持元素的插入顺序.在编码时我们经常会遇 到那种必须从已建成的ArrayList中删除反复元 ...

最新文章

  1. 清北顶会学霸:“表情”与“认知”引发的科学思辨 | 清华AI Time PHD
  2. BZOJ1095 [ZJOI2007]Hide 捉迷藏 【动态点分治 + 堆】
  3. 如何正确使用Git Flow 流程
  4. sql中常用的几种连接
  5. 远程办公第五天,你还在扩容吗?
  6. 【渝粤教育】 国家开放大学2020年春季 2542行政组织学 参考试题
  7. 安装oracle需要多少内存,针对大型内存配置的 Oracle VM 安装需要更多步骤 (7195262)...
  8. gcc -pthread_错误-在GCC Linux中使用C程序未定义对'pthread_create'的引用
  9. 服务器是怎么工作的?(二)——arp工作原理详细解析
  10. @mapper注解的使用_SpringBoot-Mybatis通用mapper使用
  11. html+css+dom补充
  12. pytorch中mask操作之torch.masked_select
  13. 第二季-专题11-世界一下变大了-MMU
  14. acid事务 mysql_MySQL 事务ACID特性
  15. 动态IP和静态IP有什么区别?
  16. com.Android.pngn.tlq,Android学习笔记(八)——四种基本布局
  17. 安然数据集分析处理_用自然语言处理分析安然会计丑闻
  18. SQL IF语句的使用
  19. Android开发笔记之视频录制
  20. 带你重新认识一下应用层协议

热门文章

  1. 游戏本电脑性价比排行2020新机来了!万元内又多一种新选择
  2. MySQL数据库SQL语句执行顺序
  3. AI写原创文章内容平台排名,一键生成软文、改写、写稿
  4. html全局变量标签,javascript怎么定义全局变量?
  5. [附源码]JAVA+ssm基层智慧党建信息管理系统(程序+Lw)
  6. Win10激活失败并提示错误代码0xC004C003的解决方法
  7. 华为服务器修改root密码,服务器root密码修改
  8. 哪些软件可以拍照翻译成中文?这些办法值得一试
  9. uni-app 框架的使用
  10. 博客让谷歌或是百度收录