不知道我说的和你的相不相似。如果是从<html>或者<jsp>页面得到的参数值,你应该用记事本打开该页面,选择文件下,另存为,保存类型选择所有文件,编码为
UTF-8

解决方案 »

  1.   

    <@page content="text/html; charset=gb2312">
      

  2.   

    <%@ page language="java" contentType="text/html; charset=gb2312"  %>
    将<meta http-equiv=\"content-type\" content=\"text/html; charset=gb2312\">
    删除
      

  3.   

    response.setContentType("text/html; charset=gb2312");
    String tmp = request.getParameter("tmp");
    却省应该是iso8859_1格式
    ???直接存入oracle数据库???
    如果上成立
    ???从数据库中取数据为iso8859_1格式???
    转化成tmp = new String(tmp.getBytes("ISO8859_1"),"gb2312");
    输出
    <%@ page language="java" contentType="text/html; charset=gb2312"  %>
    或者
    <meta http-equiv="content-type" content="text/html;charset=gb2312">
    out.println(tmp);乱码我觉得这两句
    <%@ page language="java" contentType="text/html; charset=gb2312"  %>
    <meta http-equiv="content-type" content="text/html;charset=gb2312">
    没什么区别吧
    都是设字符集
    我也已经试过了
    不行 一堆的问号
      

  4.   

    还有问题说一声,告诉我你用的是哪个jdbc驱动
      

  5.   

    另再转贴一段可能有用的代码.
    [转]Java采用Unicode码编码方式,中英文字符均采用16bit存储。既然存储英文信息是正确的,根据一定规则,将中文信息转换成英文信息后存储,自然不会出现截尾现象。读取信息时再进行逆向操作,将英文信息还原成中文信息即可。由GB2312编码规则可知,汉字一般为二个高位为1的ASCII码,在转换时将一个汉字的二个高位1去掉,还原时再将二个高位1加上。为了处理含有英文字符的中文字串,对英文字符则需要加上一个Byte 0标记。
      以下提供的两个公用静态方法,可加入任何一个类中使用。
      将中英文字串转换成纯英文字串
      public static String toTureAsciiStr(String str){
      StringBuffer sb = new StringBuffer();
      byte[] bt = str.getBytes();
      for(int i =0 ;i〈bt.length;i++){
      if(bt[i]〈0){
      //是汉字去高位1
      sb.append((char)(bt[i]&&0x7f));
       }else{//是英文字符 补0作记录
      sb.append((char)0);
      sb.append((char)bt[i]);
       }
       }
      return sb.toString();
      }
      将经转换的字串还原
      public static String unToTrueAsciiStr(String str){
       byte[] bt = str.getBytes();
       int i,l=0,length = bt.length,j=0;
       for(i = 0;i〈length;i++){
       if(bt[i] == 0){
       l++;
       }
       }
       byte []bt2 = new byte[length-l];
       for(i =0 ;i〈length;i++){
       if(bt[i] == 0){
       i++;
       bt2[j] = bt[i];
       }
       else{
       bt2[j] = (byte)(bt[i]|0x80);
       }
       j++;
       }
      String tt = new String(bt2);
      return tt;
      }