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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 涐扪①起奮乧 中级黑马   /  2013-11-17 15:07  /  801 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 涐扪①起奮乧 于 2013-11-17 21:58 编辑
  1. import java.util.*;
  2. class EncodeDemo
  3. {
  4.         public static void main(String[] args) throws IOException
  5.         {
  6.                 String s = "你好";
  7.                 byte[] b1 = s.getBytes("GBK");
  8.                 System.out.println(Arrays.toString(b1));
  9.                 String s1 = new String(b1,"ISO8859-1");
  10.                 System.out.println("s1="+s1);//产生乱码
  11.                 //对s1进行ISO8859-1再次编码
  12.                 byte[] b2 = s.getBytes("ISO8859-1");
  13.                 System.out.println(Arrays.toString(b2));
  14.                 String s2 = new String(b2,"GBK");
  15.                 System.out.println("s2="+s2);
  16.         }

  17. }
复制代码
第一个小问题我这个程序运行后显示
办公室自己46.java:4: 错误: 找不到符号
        public static void main(String[] args) throws IOException
                                                      ^
  符号:   类 IOException
  位置: 类 EncodeDemo
1 个错误
没找到原因,郁闷死了。。。

第二个问题:GBK和ISO8859-1是两个不同的编码表,里面同一个汉字对应的编码值是不同
对s1进行ISO8859-1再次编码,这一块,为什么再解码一次就会恢复正常?搞不懂。

对第一个小问题,想了半天,偶然间我在主函数上主函数里抛出Exception
public static void main(String[] args) throws Exception加上对
byte[] b2 = s.getBytes("ISO8859-1");这里改成byte[] b2 = s1.getBytes("ISO8859-1");程序就编译成功且运行成功。操,就这个小问题忙了一天,气死我了。

下面接着问主函数上我抛出Exception程序能编译成功而主函数上抛出IOException编译不成功,编译时出现
办公室自己46.java:4: 错误: 找不到符号
public static void main(String[] args) throws IOException
^
符号: 类 IOException
位置: 类 EncodeDemo
1 个错误

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 淡定

查看全部评分

1 个回复

倒序浏览
  //对s1进行ISO8859-1再次编码

byte[] b2 = s.getBytes("ISO8859-1");  //LZ这里还是S 不是S1 是不是看错了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马