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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 一步步 中级黑马   /  2013-11-13 11:58  /  1110 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package twenty_one;
import java.io.*;
import java.util.Arrays;
public class Seven {
        public static void main(String[] args)throws IOException {
        String s="你好";
        byte[]b1=s.getBytes("GBK");//默认编码不写也行。
        System.out.println(Arrays.toString(b1));
        String ss=new String(b1,"ISO8850-1");
        System.out.println("ss="+ss);
        //对ss进行ISO8850-1编码
        byte[]b2=ss.getBytes("ISO8850-1");
        System.out.println(Arrays.toString(b2));
        String sss=new String(b2,"gbk");
        System.out.println("sss="+sss);
       
        }
}
这段代码运行后出现:
[-60, -29, -70, -61]
Exception in thread "main" java.io.UnsupportedEncodingException: ISO8850-1
        at java.lang.StringCoding.decode(StringCoding.java:170)
        at java.lang.String.<init>(String.java:443)
        at java.lang.String.<init>(String.java:515)
        at twenty_one.Seven.main(Seven.java:9)

这种错误是怎么回事啊?

1 个回复

倒序浏览
String s="你好";
byte[] bt=s.getBytes("utf-8");//将s转成字节数组,并且设置编码为utf-8;
String str=new String(bt,"utf-8");//再把字节数组转成String类型,将编码也设置成utf-8;
System.out.println(str);

有时候会遇到浏览器编码的问题,这样转换后,就没问题了。
你试一下,看这样还会不会出问题。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马