黑马程序员技术交流社区

标题: 字符编码 [打印本页]

作者: pthuakai    时间: 2013-4-4 15:17
标题: 字符编码
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);
        }
}
我是根据视频敲的,为啥不执行呢,帮忙给改改吧
作者: 丁一    时间: 2013-4-4 15:41
必须要抛出异常, 下面这个就能运行了,虽然我不知道啥意思……
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);
                        }
              
        }

}
作者: 杜超    时间: 2013-4-4 15:59
输出结果是不是提示异常未处理,只要在函数上抛出异常就可以了!
不过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, 下载次数: 15)

1.jpg

作者: 庄生晓梦    时间: 2013-4-4 16:33
先直接抛出异常可以解决
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 是解不出来的,编译解译必须是同一个编码才行。。。。。我不明白,求解
作者: 黄玉昆    时间: 2013-4-6 18:45
如果问题未解决,请继续追问,如果没有问题了,请将帖子分类 改为“已解决”,谢谢
作者: 李大伟    时间: 2013-4-6 19:14
得抛异常
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);
        }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2