我已经参考过:utf-8 
  --utf-8是和unicode一一对应的,其实现很简单 
  -- 
   -- 7位的unicode: 0 _ _ _ _ _ _ _ 
  --11位的unicode: 1 1 0 _ _ _ _ _ 1 0 _ _ _ _ _ _ 
  --16位的unicode: 1 1 1 0 _ _ _ _ 1 0 _ _ _ _ _ _ 1 0 _ _ _ _ _ _ 
  --21位的unicode: 1 1 1 1 0 _ _ _ 1 0 _ _ _ _ _ _ 1 0 _ _ _ _ _ _ 1 0 _ _ _ _ _ _ 
  --大多数情况是只使用到16位以下的unicode: 
  --"你"的gb码是:0xc4e3 ,unicode是0x4f60 
  --我们还是用上面的例子 
  --  --例1:0xc4e3的二进制: 
  --  --    1 1 0 0 0 1 0 0 1 1 1 0 0 0 1 1 
  --  --    由于只有两位我们按照两位的编码来排,但是我们发现这行不通, 
  --  --    因为第7位不是0因此,返回"?" 
  --  --    
  --  --例2:0x4f60的二进制: 
  --  --    0 1 0 0 1 1 1 1 0 1 1 0 0 0 0 0 
  --  --    我们用utf-8补齐,变成: 
  --  --    11100100 10111101 10100000 
  --  --    e4--bd-- a0 
  --  --    于是返回0xe4,0xbd,0xa0 
  --  -- 
  3.string和byte[] 
  --string其实核心是char[],然而要把byte转化成string,必须经过编码。 
  --string.length()其实就是char数组的长度,如果使用不同的编码,很可 
  --能会错分,造成散字和乱码。 
  --例: 
  ----byte [] b={(byte)'\u00c4',(byte)'\u00e3'}; 
  ----string str=new string(b,encoding);  ---- 
  ----如果encoding=8859_1,会有两个字,但是encoding=gb2312只有一个字  ---- 
  --这个问题在处理分页是经常发生 
但是我不知道应该怎么处理
谁有高见,请指点指点,分不够可以再加!!!!!

解决方案 »

  1.   

    如果使用new String(str.getBytes("UTF-8"),"GBK");处理
    出现的情况则是
    如果是汉字有偶数个,则转换没有问题,但是如果是奇数个汉字,则最后一个汉字显示不出(怀疑是缺少了后半个byte).
    怎么办啊??
      

  2.   

    用参数将中文传进来,可以避免编码转换。
    也和平台有关,tomcat4我就直接得到汉字而不用转换。
    当然这是权宜之计!别的我也不清楚。
      

  3.   

    我知道,我的参数就是中文GBK编码,但是我就是要将它转成UTF-8编码,再以GBK编码写文件,只要这样处理显示才可以正常啊我现在用字节数组,用三个三个处理(因为一个汉字对应UTF-8时是三个字节)。不过要补多一个byte凑成四位。显示是正常,但是取出来再转的时候就有问题啦,因为是补齐的,所以其实编码还是有问题。
      

  4.   

    在中文环境下,!UTF-8编码格式中字符占一个字节,汉字占三个字节我的数据源从表单中获取,也可以是程序中赋值中文,是用GBK格式的,一定是GBK编码格式,我已经打印过证明,我要把这个中文字段put到一个hashtable里面,进行存储过程,我就在put进hashtable之前转换成UTF-8编码格式再作转换成GBK格式,过程其实如下:
    源数据(GBK)----->UTF-8编码格式------->GBK编码格式保存。我在win2000 server中操作,我想系统默认的编码是相同的。
    其实源数据(GBK)----->UTF-8编码格式这一步是没有问题的,这一步可以正常转换。只是:
    UTF-8编码格式------->GBK编码格式保存。
    这一步出现问题。
    UTF-8将一个汉字分成三个字节长度,要想将这样三个字节长度转换回GBK,那应该需要怎么做呢??
    也许说了这么多都没有什么用,也许有直接的方法可以将UTF8编码格式的字符串(包含汉字)转换成GBK编码格式,但是我不知道啊!!
      

  5.   

    谁可以告诉我在哪里可以下载到sun.io这个包呢??或者告诉我怎么样将字节数组写到一个文件中呢???