1.
    byte[] unicodeByte;
    byte[] gb2312Byte = new String(new String(unicodeByte).getBytes("UTF-8"),"gb2312").getBytes();
2.恐怕没有办法吧。

解决方案 »

  1.   

    1同意楼上
    2好像不关java的事
      

  2.   

    accp的代码有些问题.byte[] arUnicode;
    byte[] arGB;
    String strTemp=new String(arUnicode,"UTF-16);
    arGB=strTemp.getBytes("GB2312");判断 数组头两位是否 FFFE,可确定是否Unicode编码.
    其他的比较困难。
      

  3.   


    问: 当用JDBC向数据库中插入数据或从数据库中提取数据时,为何有时中文字符会显示为乱码?  答: 这个问题的实现通常与各个JDBC driver的实现有关. 目前大多数JDBC driver采用本地编码格式来传输中文字符,例如中文字符"0x4175"会被转成"0x41"和"0x75"进行传输. 因此我们需要对JDBC driver返回的字符以及要发给JDBC driver的字符进行转换.  当用JDBC driver向数据库中插入数据时,需要先将Unicode转成native code; 当 JDBC driver从数据库中查询数据时,则需要将native code转换成Unicode. 下面给出了这两种转换的实现:  
    String native2Unicode(String s) {  if (s == null || s.length() == 0) {  return null;  }  byte[] buffer = new byte[s.length()];  for (int i = 0; i s.length(); i++) { if (s.charAt(i)>= 0x100) {  c = s.charAt(i);  byte []buf = (""+c).getBytes();  buffer[j++] = (char)buf[0];  buffer[j++] = (char)buf[1];  }  else {  buffer[j++] = s.charAt(i);  }  }  return new String(buffer, 0, j);  }  除使用以上两个方法之外,有些JDBC driver如果对jdbc driver Manager设置了正确 的字符集属性,以上2个方法就不需要了.  
      

  4.   

    byte 就是byte,有编码的问题吗?学习ing
      

  5.   

    to各位,好象有问题!
    我的字节为:
    FF FE 54 00 45 00 53 00 54 00 4B 6D D5 8B
    文字为:TEST测试
    但是输出确为空。
    我的文件mytest.txt是用WIN2K记事本写的然后保存成 UNICODE 格式。
    我的代码如下:
    import java.util.*;
    import java.io.*;
    public class codetest
    {
        public static void main(String[] args)
        {
            byte[] content = null;
            try
            {
                content = readFromFile("D:\\mytest.txt");
            }
            catch( IOException e )
            {
                content = new byte[0];
                e.printStackTrace();
            }        
            try
            {
                System.out.println( new String(new String(content).getBytes("UTF-8"),"gb2312") );
            }
            catch( Exception e )
            {
                System.out.println("read error");
            }        
        }
        public static byte[] readFromFile(String file_name) throws IOException
        {
            FileInputStream fin = new FileInputStream(file_name);
            byte [] buf = new byte[fin.available()];
            fin.read(buf);
            fin.close();
            return buf;
        }
    }
      

  6.   

    1.紧急求教,怎样将UNICODE编码的BYTE数组转变成GB2312的BYTE数组?
       设unicode字符编码的byte数组为 b1
    则gb2312的byte数组b2为:byte[] b2 = new String(b1,"Unicode").getBytes();
    2.怎样才能自动识别BYTE数组中内容的编码格式
       无法自动识别。
       原因:byte数组装的都是0-255数字,对于指定的每个类别编码,都一种解释。
    这种解释靠分析byte本身的数字是不可能的。所以,自动识别,是不可能的。
      

  7.   

    更正一下:)
    1.紧急求教,怎样将UNICODE编码的BYTE数组转变成GB2312的BYTE数组?
       设unicode字符编码的byte数组为 b1
    则gb2312的byte数组b2为:byte[] b2 = new String(b1,"Unicode").getBytes("gb2312");
    2.怎样才能自动识别BYTE数组中内容的编码格式
       无法自动识别。
       原因:byte数组装的都是0-255数字,对于指定的每个类别编码,都一种解释。
    这种解释靠分析byte本身的数字是不可能的。所以,自动识别,是不可能的。