byte[] srtbyte = {0,1,2,3,4,5};
String s1=new String(srtbyte);
syso(s1);
结果出现乱码。这是什么原因?
看了一些网上相关的大部分都是中文编码问题,与我这问题还是有不同。
2.如果byte数组的值是字符数组。转String就没问题了
这是为什么
String s1=new String(srtbyte);
syso(s1);
结果出现乱码。这是什么原因?
看了一些网上相关的大部分都是中文编码问题,与我这问题还是有不同。
2.如果byte数组的值是字符数组。转String就没问题了
这是为什么
String res = new String(srtbyte,"UTF-8");
2.可以使用ToString()进行转换
比特数组,字符数组都支持,只不过你传入的比特数组初始化的时候不对
byte[] srtbyte = {0,1,2,3,4,5};
System.out.println(srtbyte[0]);
String s1 = new String(srtbyte);
System.out.println(s1);
按照注释掉的方式传就可以了
String s1=new String(srtbyte);//在这个构造函数中是通过使用平台的默认字符集解码指定的字节数组,可以使用String(byte[] bytes, Charset charset) 通过指定字符集对字节数组解码
syso(s1);
你也可将程序更改为:
byte[] srtbyte = {0,1,2,3,4,5};
String s1="";
for(int i=0;i<srtbyte.length;i++){
s1+=srtbyte[i];
}
System.out.println(s1);
来实现
public class A {
public static void main(String[] args) throws UnsupportedEncodingException {//这个是我当时使用String带编码时throws的异常,
byte b='0';
System.out.println(b);//48
byte []b2=new byte[]{0,1,2,99,100};
String s1=new String(b2);
System.out.println(s1);//乱码
}
}