zoukankan      html  css  js  c++  java
  • 感受一下Java乱码出现就知道怎么解决Java乱码了

    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哈哈
            ================================

  • 相关阅读:
    利用TLE数据确定卫星轨道(1)-卫星轨道和TLE
    关于javascript的单线程和异步的一些问题
    javascript编译与运行机理(1)--
    springMVC解决跨域
    如何实现免登陆功能(cookie session?)
    Map 接口有哪些类
    平时使用了哪些线程池
    Maven install报错:MojoFailureException ,To see the full stack trace of the errors, re-run Maven with the -e switch.解决
    记录新建dorado项目更新规则中报错
    Dynamic Web Module 3.0 requires Java 1.6 or newer
  • 原文地址:https://www.cnblogs.com/leodaxin/p/15221120.html
Copyright © 2011-2022 走看看