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

  • 相关阅读:
    Dart中的类型转换总结:
    【Dart学习】--Dart之数组(List)的相关方法总结
    Navigator的使用:
    001——Angular环境搭建、运行项目、搭建项目
    Dart中的数据类型转换:
    Flutter中的Stack、Align、Positioned的使用
    Flutter设置图片为正方形
    顶部导航TabBar、TabBarView、DefaultTabController
    《慕客网:IOS基础入门之Foundation框架初体验》学习笔记 <二> NSMutableString
    Swift随记
  • 原文地址:https://www.cnblogs.com/leodaxin/p/15221120.html
Copyright © 2011-2022 走看看