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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 燿陚√揚葳 中级黑马   /  2014-7-2 16:50  /  630 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 燿陚√揚葳 于 2014-7-5 15:57 编辑

当发生解码乱码时,可以先编码,然后用默认的gbk解码
  1. public class PipedDemo {
  2. public static void main(String[] args)throws Exception{
  3. String s="你好";
  4. byte[] b1=s.getBytes("gbk");
  5. sop(Arrays.toString(b1));

  6. String s1=new String(b1,"ISO8859-1");
  7. sop("s1="+s1);

  8. //对s1进行iso8859-1编码
  9. byte[] b2=s1.getBytes("ISO8859-1");
  10. sop(Arrays.toString(b2));

  11. //再进行解码
  12. String s2=new String(b2,"gbk");
  13. sop("s2="+s2);
  14. }
  15. public static void sop(Object obj){
  16. System.out.println(obj);
  17. }
  18. }
复制代码
可是如果两个都是识别中文的编码表,那么用上面的方法结果还是乱码
  1. public class Demo {

  2. public static void main(String[] args)throws Exception{
  3. String s="你好";
  4. byte[] b1=s.getBytes("gbk");
  5. sop(Arrays.toString(b1));

  6. String s1=new String(b1,"UTF-8");
  7. sop("s1="+s1);

  8. //对s1进行UTF-8编码
  9. byte[] b2=s1.getBytes("UTF-8");
  10. sop(Arrays.toString(b2));

  11. //再进行解码
  12. String s2=new String(b2,"gbk");
  13. sop("s2="+s2);
  14. }
  15. public static void sop(Object obj){
  16. System.out.println(obj);
  17. }
  18. }
复制代码
用UTF-8编码后再用gbk解码结果还是乱码,原因是什么呢?有什么解决办法吗?



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马