public class StringSize { public static void main(String[] args) throws Exception { System.out.println("================UTF8 ENCODE================"); // UTF8 ENCODE 一个中文汉字 3个字节 String testDate = "abc123哈哈"; System.out.println(testDate.length()); System.out.println(testDate.getBytes(StandardCharsets.UTF_8).length); // 6+6 System.out.println("================GBK ENCODE================"); //GBK ENCODE 一个中文汉字 2个字节 testDate = "abc123哈哈"; System.out.println(testDate.length()); System.out.println(testDate.getBytes(Charset.forName("GBK")).length); // 6+4 System.out.println("================ISO_8859_1 ENCODE================"); //ISO_8859_1 ENCODE 一个中文汉字 1个字节 System.out.println(testDate.getBytes(StandardCharsets.ISO_8859_1).length); // 6+2 Charset GBK = Charset.forName("GBK"); System.out.println("================乱码解决================"); byte[] utf8Data = testDate.getBytes(StandardCharsets.UTF_8); byte[] gbkData = testDate.getBytes(GBK); System.out.println("new String(utf8Data) = " + new String(utf8Data)); System.out.println("new String(gbkData) = " + new String(gbkData)); System.out.println("new String(utf8Data,StandardCharsets.ISO_8859_1) = " + new String(utf8Data, StandardCharsets.ISO_8859_1)); System.out.println("new String(gbkData,StandardCharsets.ISO_8859_1) = " + new String(gbkData, StandardCharsets.ISO_8859_1)); System.out.println("new String(utf8Data,GBK) = " + new String(utf8Data, GBK)); System.out.println("================乱码================"); System.out.println("new String(utf8Data) = " + new String(utf8Data)); System.out.println("new String(gbkData, GBK) = " + new String(gbkData, GBK)); System.out.println("================================"); } } 输出如下: ================UTF8 ENCODE================ 8 12 ================GBK ENCODE================ 8 10 ================ISO_8859_1 ENCODE================ 8 ================乱码解决================ new String(utf8Data) = abc123哈哈 new String(gbkData) = abc123���� new String(utf8Data,StandardCharsets.ISO_8859_1) = abc123åå new String(gbkData,StandardCharsets.ISO_8859_1) = abc123¹þ¹þ new String(utf8Data,GBK) = abc123鍝堝搱 ================乱码================ new String(utf8Data) = abc123哈哈 new String(gbkData, GBK) = abc123哈哈 ================================