操作系统:Linux7.3  
  服务器:resin2.1.4
  数据库:Oracle8i情况一、参数设置
<% request.setCharacterEncoding("ISO-8859-1");%>
<% @page contentType="text/html;charset=GBK"  %>插入数据库前的转换: new String(content.getBytes("GBK2312"),"ISO-8859-1");     
数据库显示中文正常(用客户端软件)
从数据库中读出的显示转换:new String(content.getBytes("ISO-8859-1"),"GBK2312"); 
网页中显示中文正常情况二、参数设置
<% request.setCharacterEncoding("ISO-8859-1");%>
<% @page contentType="text/html;charset=UTF-8"%>
插入数据库前的转换: new String(content.getBytes("GBK2312"),"ISO-8859-1");   
数据库显示中文乱码
从数据库中读出的显示转换:new String(content.getBytes("ISO-8859-1"),"GBK2312"); 
网页显示中文乱码
其它情况也试过一些,都没有成功过.
请问在使用utf-8编码情况下,在插入数据库和读取数据库时该做何变换?才能使得网页显示中文而不乱.

解决方案 »

  1.   

    如果数据库使用utf-8编码,那么信息存入的时候就把信息的编码转换成utf-8 然后存入
    取出的时候就把utf-8转换成gbk就行了
      

  2.   

    GBK2312  ???????????????  应该是gb2312吧
    正确的应该是
    情况一、参数设置
    <% request.setCharacterEncoding("GBK");%>
    <% @page contentType="text/html;charset=GBK"  %>
    插入数据库前的转换: new String(content.getBytes("GBK"),"ISO-8859-1");    
    从数据库中读出的显示转换:new String(content.getBytes("ISO-8859-1"),"GBK"); 
    情况二、参数设置
    <% request.setCharacterEncoding("utf-8");%>
    <% @page contentType="text/html;charset=UTF-8"%>
    插入数据库前的转换: new String(content.getBytes("utf-8"),"ISO-8859-1");   
    从数据库中读出的显示转换:new String(content.getBytes("ISO-8859-1"),"utf-8"); 
      
      

  3.   

    GBK2312??????????GB2312吧?
      

  4.   

    谢谢楼上的朋友帮我UP
    OnlyFor_love: 你的方法我刚开始就试过,没能得到我们所期望的结果.遗憾.
      

  5.   

    new String(content.getBytes("GBK2312"),"ISO-8859-1");     
    …………
      

  6.   

    是不是转换时写错了
    插入前应是
    new String(String.getBytes("ISO-8859-1"),"GB2312")
    从数库中读取是应为
    new String(String.getBytps("GB2312"),"ISO-8859-1");
    我记得是这样做就没有问题吧
      

  7.   

    是的,之前是我的笔误.
    情况二、参数设置
    <% request.setCharacterEncoding("utf-8");%>
    <% @page contentType="text/html;charset=UTF-8"%>
    插入数据库前的转换: new String(content.getBytes("utf-8"),"ISO-8859-1");   
    从数据库中读出的显示转换:new String(content.getBytes("ISO-8859-1"),"utf-8"); 
    在页面上是可以正常显示的,之前我做过测试,但是现在有个问题是,数据库里显示乱码,当然这可能不影响用户的使用,但是问题只解决一半:
    问一下,能不能做到在数据库中也显示正常.可能需要多做一些转换.确保网页中和数据库中显示都正常.
      

  8.   

    写入数据库前应是这样的:
    <% request.setCharacterEncoding("utf-8");%>
    <% @page contentType="text/html;charset=UTF-8"%>
    ...
    new String(content.getBytes("ISO8859-1"),"UTF-8");
    ...
    如果写入数据库,在数据库中查询是乱码的话:
    建议将你的数据库的字符集改为Unicode
      

  9.   

    写入数据库前应是这样的:
    <% request.setCharacterEncoding("utf-8");%>
    <% @page contentType="text/html;charset=UTF-8"%>
    ...
    new String(content.getBytes("ISO8859-1"),"UTF-8");
    ...
    如果写入数据库,在数据库中查询是乱码的话:
    建议将你的数据库的字符集改为Unicode