我的oracle数据库字符集是US7ASCII,页面字符集是UTF-8,插入中文数据后是乱码,这种字符集不统一的情况该怎么办?望高手指教。数据库的字符集 是不能更改了。

解决方案 »

  1.   

    查询的时候,在你的程序中对取出来的数据进行转码
    String t = new String(rs.getString(1),"GBK"); 
      

  2.   

    如果你的数据库编码是GBK或者latin之类的,需要转码比如数据库里存放的是GBK,需要2步转换, str=new String(rs.getBytes(1),"GBK"); 再str=new String(str.getBytes("UTF-8"),"GBK"),才可以正确显示中文。
      

  3.   

    show sql看下hibernate插进去的是不是乱码~~~应该不会是hibernate进数据库产生的乱码,是程序的问题
      

  4.   

    写一个继承ActionServlet,重写 proess,设置request.setCharacterEncoding("utf-8"); 
      

  5.   

    我的oracle数据库字符集是US7ASCII
      

  6.   

    解决乱码很轻松,
    首先将客户端上面的字符编码统一为GBK或者UTF-8等;
    写个过滤器Filter;
    把服务器,比如Tomcat的字符编码改成客户端一样就行
      

  7.   


    您好, 我界面上设置的是UTF-8, 过滤器上是UTF-8  服务器上怎么设置? 是(uRIEncoding="UTF-8") 吗,
    我跟踪了一下直到hibernate的save之前都是正常的,保存后就乱码了.
      

  8.   

    我在写入之前用new String(condition.getBytes("GBK"),"iso-8859-1") 进行转码后,就可以了,但是不能每个写入信息都这个写吧,多麻烦呀,有通用一点的吗