建库时选择字符集为UTF8应该没问题。
我没在jsp中试过,如果不成 ,不妨在你的jsp的字符集改成:request.setCharacterEncoding("UTF8")一试。

解决方案 »

  1.   

    应该是oracle本身的问题
    试试看再注册表中修改三个hkey_local_machine  -->software -->oracle下搜索NLS_LANG,一般在这个目录下有三个,把他们的值修改为AMERICAN_AMERICA_USASCII7 重新启动电脑就可以了。
      

  2.   

    在hkey_local_machine  -->software -->oracle目录下搜索NLS_LANG,搜到3个,编辑它的值为american_america.usascii7即可
      

  3.   

    这样也不行,试过了,ServletInputStream readStream会存在什么样的问题呢?
      

  4.   

    应该是american_america.us7ascii,试试看可以吗,我以前也是遇到?,这样解决的!
      

  5.   

    对于qqlaile(凌飞)同志的提议我觉得可能是一个问题,但是在这里应该不会成为一个问题,ORACLE安装在北京公司,而且系统已经上线了,我们开发的时候是在本地测试,一点问题都没有发现,北京的服务器好象是solaris的,关键是其他的数据提交或什么操作都没有出现这种问题呢,所以认为ORACLE配置应该不会成为一个问题
      

  6.   

    jsp中调试和在EJB中都调试,具体步骤到:
    statement = conn.createStatement();
    System.out.println(sql);
    statement.excuteUpdate(sql);前面也用过preparedStatement也是一样,为了能看到SQL,所以改成了STMT了,这地方的SQL都是输出像insert table (a,b,c,..) values ('中国','北京','上海',...)的,就是不知道到数据库就成了?了
      

  7.   

    jsp中读写数据库时必须进行编码转换,找个jsp读写数据库的例子看看就可以了
    --本地向数据库写的时候的转换函数
    <%!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++) 
    {
                   buffer[i] = (byte)s.charAt(i);
                }
                return new String(buffer);
            }       
    %>
    --数据库读取显示到本地的转换函数
    <%!String unicode2Native(String s) 
    {
               if (s == null || s.length() == 0) {
                  return null;
               }
               char[] buffer = new char[s.length() * 2];
               char c;
               int j = 0;
               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);
    }
    %>