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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© pthuakai 中级黑马   /  2013-4-4 15:17  /  1743 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.util.*;
class EncodeDemo {

        public static void main(String[] args) {
                String s="你好";
                byte[] b=s.getBytes("GBK");
                System.out.println(Arrays.toString(b));
                String s1=new String(b,"SO8859-1");
                System.out.println("s1="+s1);
        }
}
我是根据视频敲的,为啥不执行呢,帮忙给改改吧

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

5 个回复

倒序浏览
必须要抛出异常, 下面这个就能运行了,虽然我不知道啥意思……
import java.util.*;
class Dome {
        public static void main(String[] args) {
                        try
                        {
                                 String s="你好";
                byte[] b=s.getBytes("GBK");
                System.out.println(Arrays.toString(b));
                String s1=new String(b,"SO8859-1");
                System.out.println("s1="+s1);
                        }
                        catch (Exception e)
                        {
                                System.out.println(e);
                        }
              
        }

}
回复 使用道具 举报
输出结果是不是提示异常未处理,只要在函数上抛出异常就可以了!
不过s1是没有输出结果的,用GBK 编译,SO8859-1 是解不出来的,编译解译必须是同一个编码才行
import java.util.*;
class EncodeDemo
{

        public static void main(String[] args)throws Exception
                {
                String s="你好";
                byte[] b=s.getBytes("GBK");
                System.out.println(Arrays.toString(b));
                String s1=new String(b,"SO8859-1");
                System.out.println("s1="+s1);
        }
}



1.jpg (33.62 KB, 下载次数: 18)

1.jpg
回复 使用道具 举报
先直接抛出异常可以解决
import java.util.*;
class EncodeDemo {

        public static void main(String[] args)throws Exception
                        {
                 String s="你好";
                 byte[] b=s.getBytes("GBK");
                 System.out.println(Arrays.toString(b));
                 String s1=new String(b,"SO8859-1");
                 System.out.println("s1="+s1);
         }
}
但是对于不过s1是没有输出结果的,用GBK 编译,SO8859-1 是解不出来的,编译解译必须是同一个编码才行。。。。。我不明白,求解

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
如果问题未解决,请继续追问,如果没有问题了,请将帖子分类 改为“已解决”,谢谢
回复 使用道具 举报
得抛异常
import java.io.UnsupportedEncodingException;
import java.util.*;
class EncodeDemo {

        public static void main(String[] args) throws UnsupportedEncodingException {
                String s="你好";
                byte[] b=s.getBytes("GBK");
                System.out.println(Arrays.toString(b));
                String s1=new String(b,"SO8859-1");
                System.out.println("s1="+s1);
        }
}

或者try catch 处理

import java.io.UnsupportedEncodingException;
import java.util.*;
class EncodeDemo {

        public static void main(String[] args) {
                String s="你好";
                byte[] b = null;
                                try {
                                        b = s.getBytes("GBK");
                                } catch (UnsupportedEncodingException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                }
                System.out.println(Arrays.toString(b));
                String s1 = null;
                                try {
                                        s1 = new String(b,"SO8859-1");
                                } catch (UnsupportedEncodingException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                }
                System.out.println("s1="+s1);
        }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马