ISO-8859-1和GBK互转

 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=极简主义

原文地址:https://www.cnblogs.com/foxting/p/9173929.html