http://community.csdn.net/Expert/topic/3384/3384597.xml?temp=.6685144

解决方案 »

  1.   

    如果没有指定request的编码方式,客户端接受到的参数的名字和参数值都是以iso-8859-1编码的String。
    这是服务器的默认处理。也就是说如果你在requestr.getParameter()之前没有指定request的编码方式,那么取出来的肯定是iso-8859-1编码格式的字符串了,这样还需要判断是什么字符集类型么??
    但凭一个string好像判断不出来什么编码格式的。
      

  2.   

    凭一个string判断不出是什么编码格式的
      

  3.   

    你不必判断字符集,正如: d992901(沉思) 所说,没有指定request的字符集时都是ISO-8859-1编码的,所以你全部用以下方法转换成GB2312就可以了:
    String aa="汉字";
    aa=new String(aa.getBytes("ISO-8859-1"),"GB2312");
      

  4.   

    我觉得大家好像没有明白我的意思,我的目的就是想看一个String是采用什么样的编码类型!
    我做了一个简单的程序但有时不好用
    //字符类型转换UTF8 TO GB2312
    public String UTFToGB(String value){

    StringBuffer sb=new StringBuffer();
    try{


    byte b[]=value.getBytes("8859_1");

    for(int j=0;j<b.length;j++){
    sb.append(b[j]);

    }
    if(sb.toString().indexOf("-")!=-1){

    value=new String(value.getBytes("8859_1"),"GB2312");


    }
    }catch(java.io.UnsupportedEncodingException e){
    } return value;
    }
    请问大家是不是有更好的办法,我觉得应该能做到的谢谢!