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

  • 相关阅读:
    IE、FF、Chrome浏览器中的JS差异介绍
    防止 jsp被sql注入的五种方法
    读取Excel数据到Table表中
    C#获取IP地址
    JavaScript之web通信
    Unity使用 转载
    EF5 通用数据层 增删改查操作,泛型类
    Entity FrameWork 5 增删改查 & 直接调用sql语句
    asp.net重启web应用程序域
    .net创建activex实现摄像头拍照
  • 原文地址:https://www.cnblogs.com/leodaxin/p/15221120.html
Copyright © 2011-2022 走看看