首页 > 编程语言 > 详细

感受一下Java乱码出现就知道怎么解决Java乱码了

时间:2021-09-04 03:06:47      阅读:27      评论:0      收藏:0      [点我收藏+]
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) = abc1231t1t
        new String(utf8Data,GBK) = abc123鍝堝搱
        ================乱码================
        new String(utf8Data) = abc123哈哈
        new String(gbkData, GBK) = abc123哈哈
        ================================

 

感受一下Java乱码出现就知道怎么解决Java乱码了

原文:https://www.cnblogs.com/leodaxin/p/15221120.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!