大拿:       请问java里有什么方法或类可以使unicode转换为UTF8。急盼恢复。

解决方案 »

  1.   

    String 类
    public byte[] getBytes(String charsetName)Byte 类
    public String toString()
      

  2.   

    unicode是\uxxxx的一个二进制数表示一个字符
    那么采用下面的方法
    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();
        }
      

  3.   

    没有明白,
    如果是unicode-16,怎么能够转换成utf-8呢?
    举个例子
    '回' 字 在unicode-16编码,你怎么能把它转换成utf-8,除了乱码,没有其他东西了.当然,如果unicode-16 本省纪录的就是普通的utf-8集合的字符,那倒是可以转换
    举个例子
    unicode字符'A'       在GB2312中 它是由2个字节  第一个字节 的字符码就是 'A',第二个字节码是0
      

  4.   

    utf-8 不就是unicode文本格式吗???好象有这么一句话:
    JAVA程序中Unicode与UTF的关系,虽然不绝对:字符串在内存中运行时,表现为Unicode代码,而当要保存到文件或其它介质中去时,用的是UTF。这个转化过程是由writeUTF和readUTF来完成的。
      

  5.   

    new String("sdfsafds".getBytes(),"utf-8")