String text = "\u5f53\u7b2c\u4e00";
System.out.println( text );
运行输出结果为:"第一个“;把上面的text字符窜,保存到文本文件中,然后读取出来
        Pattern p = Pattern.compile("(\\\\u\\w{4})+");
     Matcher m = p.matcher(text);     while( m.find() ) {
     String str = m.group();
   System.out.println( str) );
                //此处输出结果为:\u5f53\u7b2c\u4e00  而不是对应的中文字符:第一个
                //请问如何才能让输出其对应的中文字符窜:第一个 呢     } 

解决方案 »

  1.   

    这个有法吗?
    String text = "\u5f53\u7b2c\u4e00";就直接是汉字了,下面的正则貌似不能再起作用了
      

  2.   

    文件读取的要转码,网上很多,你百度下,unicode转成字符串
      

  3.   

    可以使用org.apache.commons.lang.StringEscapeUtils#unescapeJava(String)方法
      

  4.   

    可以使用jdk自带的native2ascii.exe来转换,Runtime r=Runtime.getRuntime();
    Process p=r.exec("cmd /C native2ascii.exe -encoding unicode d:\\a.txt", null, new File("D:\\Program Files\\Java\\jdk1.6.0_22\\bin"));//使用cmd执行native2ascii.exe -encoding转换编码为unicode我的native2ascii在D:\Program Files\Java\jdk1.6.0_22\bin文件夹下,你可以根据你的native2ascii的所在目录指定
    //转换完后用Process的getInputStream从运行命令中获取输入流来读取转换后的编码字符,接下来就可以用你的正则了
    BufferedReader br=new BufferedReader(new InputStreamReader(p.getInputStream()));
    String text=null;
    while((text=br.readLine())!=null)
          System.out.println(text);
    br.close();
      

  5.   

    我自己解决了。运行下下面这条语句就明白了
    System.out.print( (char)(Integer.parseInt("5f53",16) ) );