A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© a3330682 中级黑马   /  2014-4-27 12:58  /  878 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 a3330682 于 2014-4-27 14:56 编辑
  1. class  EncodeDemo
  2. {
  3.         public static void main(String[] args)throws Exception
  4.         {
  5.                 String s = "哈哈";

  6.                 byte[] b1 = s.getBytes("GBK");

  7.                 System.out.println(Arrays.toString(b1));
  8.                 String s1 = new String(b1,"utf-8");
  9.                 System.out.println("s1="+s1);

  10.                 //对s1进行iso8859-1编码。
  11.                 byte[] b2 = s1.getBytes("utf-8");
  12.                 System.out.println(Arrays.toString(b2));

  13.                 String s2 = new String(b2,"gbk");

  14.                 System.out.println("s2="+s2);

  15.                

  16.         }
  17. }
复制代码
为什么这里用utf-8二次编码后用gbk解码结果s2=s2=锟斤拷锟斤拷

1 个回复

倒序浏览
class  EncodeDemo
{
        public static void main(String[] args)throws Exception
        {
                String s = "哈哈";//默认使用GBK编码

                byte[] b1 = s.getBytes("GBK");//使用GBK解码[-71, -2, -71, -2]

                System.out.println(Arrays.toString(b1));
                String s1 = new String(b1,"utf-8");//使用UTF-8编码
                System.out.println("s1="+s1);

                //对s1进行iso8859-1编码。
                byte[] b2 = s1.getBytes("utf-8");
                System.out.println(Arrays.toString(b2));

                String s2 = new String(b2,"gbk");

                System.out.println("s2="+s2);
  /*
    是UTF-8支持中文造成的。当使用GBK编码后,生成字节码[-71, -2, -71, -2],UTF-8使用最多三个 字节表示一个字符,得到s1=????,然后将?在自己码表里查找对应字节码,这里是一个字符代表三位得到 [-17, -65, -67, -17, -65, -67, -17, -65, -67, -17, -65, -67],这份字节码已经不是原来那份自己码。 使用GBK解码出现乱码。GBK两个字节代表一个字符,得s2 = 锟斤拷锟斤拷
注意:在使用GBK编码时,不可以使用UTF-8进行解码,可以使用不支持中文的编码方式进行解码,但要得到原数据,需要使用该编码方式进行一次编码,在使用GBK进行解码。
   过程:GBK编码-ISO8859-1解码-ISO8859-1编码-GBK解码。
                 */
               
        }
}

评分

参与人数 1技术分 +1 收起 理由
SyouRai_Tsk + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马