Tomcat5.0 + sqlserver 运行于windows 2003平台. 
开始文件中有: 
<meta http-equiv="Content-Type" Content="text/html; charset=gb2312"> 
jsp文件显示乱码, 字符集是"西欧", 但查看HTML字符,里面文字正常, 将网页编码改成简体中文后,显示正常 
后来,我删除了<meta http-equiv="Content-Type" Content="text/html; charset=gb2312"> 
加上 
<%@page conetextType="text/html; charset=gbk"%> 
jsp网页中文显示正常,但数据库里的数据显示出现乱码,都为??, 查看网页字符集是"简体中文",查看HTML字符,发现里面数据库里内容全变为乱码,而JSP网页中字符显示正常. <%@page conetextType="text/html; charset=gb2312"%> 和
<%@page conetextType="text/html; charset=UTF-8"%> 也一样
我改了Server.xml 也没有作用.在整个网站中有部分网页显示正确,里面也包含了数据库访问代码, 我把它们放在一起,显示正确的部分还是显示正确,错误部分还是显示 ??,这是怎么回事啊?

解决方案 »

  1.   

    在后台获得中文参数后转换一下成GBK后再更新数据库:String str = request.getParameter("para");
    String words =  new String(str.getBytes("ISO8859_1"),"GBK");数据库操作。
      

  2.   

    加上这条呢:< request.setCharEncoding="gb2312" >
    好像是这么写,楼主试试。
      

  3.   

    我的网站是从别的地方原样移过来的,程序上应该不会有问题,但如果Tomcat和Sqlserver有问题,另一网页应该也乱码。到底问题出在什么地方? 请大家帮帮忙。
      

  4.   

    Server.xml 里面你改的哪儿,是8080端口的设置吗?
      

  5.   

    在tomcat5的serverv.xml文件里面 <Connector port="7002" maxHttpHeaderSize="8192"
                   maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                   enableLookups="false" redirectPort="8443" acceptCount="100"
                   connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" />URIEncoding可以自己重新设定下
      

  6.   

    楼主没理解清下面两者的作用:
    <meta http-equiv="Content-Type" Content="text/html; charset=gb2312"> 
    <%@page conetextType="text/html; charset=gb2312"%>
    用以说明主页制作所使用的文字以及语言,即显示页面的编码方式两者都是针对显示页面的,不同的是第2种方式只针对jsp页面你说:
    jsp网页中文显示正常,但数据库里的数据显示出现乱码,都为??, 查看网页字符集是"简体中文",查看HTML字符,发现里面数据库里内容全变为乱码,而JSP网页中字符显示正常. 而你数据库编码一定不是gb2312,要是使用的数据库默认编码方式,那就不是gb2312也就是说你的前台显示页面,业务逻辑(处理数据)和数据库的三者的编码方式要统一你把三者统一为gb2312就不会出错了