java的字符串转换成byte数组后,遍历出来的的是结果是不是参照了ascii码??

是这样的,想请讲解下,java的字符串转换成byte数组后,遍历出来的的是结果是不是参照了ascii码??
最新回答
栀子花开

2024-11-06 02:38:22

字符串转成byte数组,是要根据字符编码,编码不同byte数组也可能不同,ascii码对应的拉丁字母基本上值是不变的,只不过在不同的编码里可能占有位数不一样,'h'在iso8859-1里是一个字节的104,在utf-8里也是,但在utf-16le里是2个字节的104
水洗晴空

2024-11-06 02:08:08

是的,具体来说,应该是按照某个字符集(java默认是utf-8字符集)来进行编码存储的
String s = "ab";
byte[] b = s.getBytes();
即在数组b中, 存储了97 98 两个数据
相当于:byte[] bt = {97,98};
幼稚園班長

2024-11-06 06:37:57

拉丁字母和数字是的。对于汉字,根据你传入的编码不同而已不同。实际上拉丁语也是根据你传入的编码来返回的,只是结果看上去和ascii编码的结果是一样的。