各类乱码类型及其产生原因

在这里插入图片描述
注:默认编码为UTF-8

        //1 以GBK方式读取UTF-8码的中文  古文+日韩
        String str = "我爱你啊分为了交流大多为不认识的古";
        String s0 = new String(str.getBytes(), "GBK");
        System.out.println("s0 = " + s0);
        //2 以UTF-8的方式读取GBK码的中文 小方块
        String s1 = new String(str.getBytes("GBK"), "UTF-8");
        System.out.println("s1 = " + s1);

        //3 以IS08859-1方式读取UTF-8编码的中文
        String s3 = new String(str.getBytes(), "ISO8859-1");
        System.out.println("s3 = " + s3);
        //4 以IS03859-1方式读取GBK结码的中文
        String s4 = new String(str.getBytes("GBK"), "ISO8859-1");
        System.out.println("s4 = " + s4);
        //5 以GBK方式读取UTF-8编码的中文,然后又用UTF-8的格式再次读取
        String s5 = new String(str.getBytes(), "GBK");
        String s6 = new String(s5.getBytes("GBK"), "UTF-8");
        System.out.println("s6 = " + s6);
        //6 以 UTF-8 方式读取GBK编码的中文,然后又用GBK的格式再次读取
        String s7 = new String(str.getBytes("GBK"), "UTF-8");
        String s8 = new String(s7.getBytes(), "GBK");
        System.out.println("s8 = " + s8);

运行结果如下

s0 = 鎴戠埍浣犲晩鍒嗕负浜嗕氦娴佸ぇ澶氫负涓嶈璇嗙殑鍙�
s1 = �Ұ��㰡��Ϊ�˽������Ϊ����ʶ�Ĺ�
s3 = æˆ‘çˆ±ä½ å•Šåˆ†ä¸ºäº†äº¤æµå¤§å¤šä¸ºä¸è®¤è¯†çš„å¤
s4 = ÎÒ°®Äã°¡·ÖΪÁ˽»Á÷´ó¶àΪ²»ÈÏʶµÄ¹Å
s6 = 我爱你啊分为了交流大多为不认识的�?
s8 = 锟揭帮拷锟姐啊锟斤拷为锟剿斤拷锟斤拷锟斤拷锟轿拷锟斤拷锟绞讹拷墓锟�
  • 15
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值