String slogn = "极简主义"; byte[] bytes = slogn.getBytes("GBK");// 编码:字符串变成字节数组 输入 参数(编码表) System.out.println(Arrays.toString(bytes));// 打印 数组变成字符串 String s1 = new String(bytes, "ISO-8859-1");// 解码:字节数组变成字符串,String参数(数组,编码表) 输出 System.out.println("s1=" + s1); System.out.println(java.nio.charset.Charset.forName("ISO-8859-1").newEncoder().canEncode(s1)); //判断是否可以编码 if (java.nio.charset.Charset.forName("ISO-8859-1").newEncoder().canEncode(s1)) { // 对s1进行ISO-8859-1编码 byte[] bytes2 = s1.getBytes("ISO-8859-1");// 拿乱码的字符串重新编码成字节数组,输入 参数(编码表) System.out.println(Arrays.toString(bytes2));// 打印 数组变成字符串 String s2 = new String(bytes2, "GBK");// 解码:字节数组变成字符串,String参数(数组,编码表) 输出 System.out.println("s2=" + s2); }
结果:
[-68, -85, -68, -14, -42, -9, -46, -27] s1=¼«¼òÖ÷Òå true [-68, -85, -68, -14, -42, -9, -46, -27] s2=极简主义