字符编码格式不支持 很棘手
Java 源代码->字节码->虚拟机->操作系统->显示设备
都是考虑因素

解决方案 »

  1.   

                try {
                    String jyh="该产品不能办理亲情业务";
                    bytes=jyn.getBytes();//用系统默认编码方式
                    for(int i=0;i<bytes.length;i++)
                    {
                        System.out.println("***** "+bytes[i]);
                    }
                    System.out.println(new String(bytes,"gb2312"));
                } catch (UnsupportedEncodingException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
    这样试试
      

  2.   

    或者你要是单纯的显示中文
    可以使用这个方法
    text = new String( text.getBytes(“iso8859-1”),”gb2312”);
      

  3.   

    try {
                    bytes = "该产品不能办理亲情业务".getBytes("iso-8859-1");
                    for(int i=0;i<bytes.length;i++)
                    {
                        System.out.println("***** "+bytes[i]);
                    }
                    System.out.println(new String(bytes,"gb2312"));
                } catch (UnsupportedEncodingException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
      

  4.   

    try {
                    bytes = "该产品不能办理亲情业务".getBytes("gb2312");
                    for(int i=0;i<bytes.length;i++)
                    {
                        System.out.println("***** "+bytes[i]);
                    }
                    System.out.println(new String(bytes,"UTF-8"));
                } catch (UnsupportedEncodingException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
      

  5.   

    byte[] bytes;
    try {
                bytes = "该产品不能办理亲情业务".getBytes("gb2312");
                for(int i=0;i <bytes.length;i++)
                {
                    System.out.println("***** "+bytes[i]);
                }
                System.out.println(new String(bytes,"gb2312"));
            } catch (UnsupportedEncodingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }测试不论是编码还是解码都一切正常,xp sp3 中文
      

  6.   

    通过以上结论可得,Lz的代码是没有问题,只是控制台乱码而已,因为你打印的是gb2312编码的字符,二控制台默认的不是这个编码格式。改一下jvm变量就可以了。