public class Test {
    public static void main(String[] args) throws Exception {
        String con = "需要";//此时是Unicode编码的              
        String end = new String(con.getBytes("UTF-8"));
        System.out.println(end);
    }
}
程序的目的就是将 "需要" 两个字编码成UTF-8的,然后打印。
打印出来的结果是:闇?瑕?这个结果其实是不正确的UTF-8编码。通过UltraEdit和浏览器等软件得到验证。但是将 "需要"  两个字换成 "你好" 之后,转换是正确地,输出的结果是:浣犲ソ对此,非常不解!希望大家能够帮助我!运行环境:JDK1.5  Windows 2000 中文  Eclipse  Editplus

解决方案 »

  1.   

    顺便说一句:需要正确的UTF-8编码是:闇€瑕?
      

  2.   

    String con = "需要";//此时是Unicode编码的 
            String end = null;
            try {
                end = new String(con.getBytes("GB2312"));
            } catch (UnsupportedEncodingException ex) {
            }
            System.out.println(con);
            System.out.println(end);
    楼主试试?呵呵
    输出:
    需要
    需要可见原来的就是GB2312
      

  3.   

    楼上弄错了,我需要的是正确的UTF-8 编码。
      

  4.   

    我的意思是:
    =============
    String con = "需要";//此时是Unicode编码的
    =============
    这里的注释就是错误的,编译环境中的默认编码就是GB2312
      

  5.   

    String str=new String(con.getBytes("gbk"),"UTF-8");
      

  6.   

    unicode和UTF-8编码是一一对应的关系
      

  7.   

    String str=new String(con.getBytes("gbk"),"UTF-8");在我机器上打印出乱码!!!public class Test {
        public static void main(String[] args) throws Exception {
            String con = "需要";             
            String end = new String(con.getBytes("UTF-8"));
            System.out.println(end);
        }
    }
    我希望这段代码输出:闇€瑕?
    而不是:闇?瑕?
      

  8.   

    class Test {
        public static void main(String[] args) throws Exception {
            String con = "需要";             
            String end=new String(con.getBytes("UTF-8"),"UTF-8");
            //String end = new String(con.getBytes("UTF-8"));
            System.out.println(con);
            System.out.println(end);
        }
    }
    在我的机器上输出:
    需要
    需要说明:默认编码就是UTF-8
    WIN_XP/SP2, JDK1.4.2_02, JCreator2.5
      

  9.   

    public class Test {
        public static void main(String[] args) throws Exception {
            String con = "需要";             
            String end = new String(con.getBytes("UTF-8"));
            System.out.println(end);
        }
    }
    我希望这段代码输出:闇€瑕?
    而不是:闇?瑕?请大家按照我的目的来讨论!
      

  10.   

    可以参考这里的讨论http://community.csdn.net/Expert/TopicView.asp?id=3172043