黑马程序员技术交流社区

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

作者: 燿陚√揚葳    时间: 2014-7-2 16:50
标题: 关于字符编码问题
本帖最后由 燿陚√揚葳 于 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解码结果还是乱码,原因是什么呢?有什么解决办法吗?








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