我现在目的是想将native2ascii -encoding unicode 命令产生的文本文件中的“/u865A/u7EBF”,通过JAVA程序读入,然后转换成中文字符,输出到网页上.试了一些方法,没有成功!请高人提示一下思路!只要有眉目,马上给分!

解决方案 »

  1.   

    System.out.println("\u865A\u7EBF");这样可以直接打印出中文.
      

  2.   

    这样试试StringBuffer sb = new StringBuffer();
    char c = (char) Integer.parseInt("865A", 16);
    sb.append(c);
    c = (char) Integer.parseInt("7EBF", 16);
    sb.append(c);
    System.out.println(sb.toString());
      

  3.   

    http://community.csdn.net/Expert/topic/4152/4152574.xml?temp=.6084406
      

  4.   

    byte buf[]=new byte[216];
    new String(buf,"Gb2312");
    然后打印这样试试
      

  5.   

    /*
         * Converts encoded \uxxxx to unicode chars
         * and changes special saved chars to their original forms
         */
        private String loadConvert(String theString) {
            char aChar;
            int len = theString.length();
            StringBuffer outBuffer = new StringBuffer(len);        for (int x=0; x<len; ) {
                aChar = theString.charAt(x++);
                if (aChar == '\\') {
                    aChar = theString.charAt(x++);
                    if (aChar == 'u') {
                        // Read the xxxx
                        int value=0;
        for (int i=0; i<4; i++) {
            aChar = theString.charAt(x++);
            switch (aChar) {
              case '0': case '1': case '2': case '3': case '4':
              case '5': case '6': case '7': case '8': case '9':
                 value = (value << 4) + aChar - '0';
         break;
      case 'a': case 'b': case 'c':
                              case 'd': case 'e': case 'f':
         value = (value << 4) + 10 + aChar - 'a';
         break;
      case 'A': case 'B': case 'C':
                              case 'D': case 'E': case 'F':
         value = (value << 4) + 10 + aChar - 'A';
         break;
      default:
                                  throw new IllegalArgumentException(
                                               "Malformed \\uxxxx encoding.");
                            }
                        }
                        outBuffer.append((char)value);
                    } else {
                        if (aChar == 't') aChar = '\t';
                        else if (aChar == 'r') aChar = '\r';
                        else if (aChar == 'n') aChar = '\n';
                        else if (aChar == 'f') aChar = '\f';
                        outBuffer.append(aChar);
                    }
                } else
                    outBuffer.append(aChar);
            }
            return outBuffer.toString();
        }
      

  6.   

    上面那个java.util.properties的源代码其实在网页上,只要页面编码是UTF-8就可以直接把他们直接转换成中文显示的。
    不过你的日文系统是否安装了中文包我就不清楚了。
      

  7.   

    to lei198203(lei) :
    *******************************************
    这样试试StringBuffer sb = new StringBuffer();
    char c = (char) Integer.parseInt("865A", 16);
    sb.append(c);
    c = (char) Integer.parseInt("7EBF", 16);
    sb.append(c);
    System.out.println(sb.toString());
    *********************************************你说的这个方法是可行的,但如何将任意的unicode编码形式的字符如“/u865A/u7EBF/u865A/u7EBF/u865A/u7EBF”等转换为我所需要的sb,而且这些字符可能和数字及英文夹杂在一起,Java包中有现成的方法吗?
      

  8.   

    “/u865A/u7EBF/u865A/u7EBF/u865A/u7EBF”这种形式的字串都是以/u开头的字符组合, 那就把/u后面的四个字符取出来然后用上面的方法不就行了? 数字和字符会有什么不一样的吗, 你把包含数字与字符还有汉字的编码贴上来看看.
      

  9.   

    回复人: jFresH_MaN(Contributing to Eclipse) ( ) 信誉:213  2005-08-11 14:29:00  得分: 0  又一次被你抢先了!): ,下次一定要抢在你前面。不过,必须要机器支持中文才行。
      

  10.   

    new DataInputStream(new FileInputStream("含有Native2Ascii后的Unicode串的文本.properties")).readUTF();