在tomcat中设置数据源,为解决乱码问题,经常看到这样设置url:jdbc:mysql://192.168.0.16/SUBRDB?useUnicode=true&characterEncoding=gb2312,这是mysql的,如果是jtds呢,该怎么设置?

解决方案 »

  1.   

    楼主的意思是在Tomcat下的Server.xml里设置中文的问题么?
    jtds我不明白.
      

  2.   

    to xian_hf: 用jtds驱动连接sqlserver数据库。我看mysql可以在url后面加上“useUnicode=true&characterEncoding=gb2312”来解决中文问题,我想知道是否也可以在url="jdbc:jtds:sqlserver://192.168.0.6:1433/test_hibernate" 后加点什么,来解决中文问题呢?我是用hibernate访问server.xml设置的数据源来实现与数据库交互的,页面时jsp页面,中文保存到库里里头都变成类似??的乱码了。
      

  3.   

    请确定JSP和数据库编码方式相同且支持汉字
    POST提交 设置过滤器 request.setCharacterEncoding("...");
      

  4.   

    to yirentianran: 我用的是get提交,有区别吗?
    我已加了request.setCharacterEncoding("gb2312");response.setCharacterEncoding("gb2312");
    “请确定JSP和数据库编码方式相同且支持汉字”?这句话能再具体一点吗,我用sqlserver2000的库,语言选了simplfied chinese了,不知道数据库的编码具体指什么呢?在sqlserver里头哪里设置呢?谢谢。
      

  5.   

    每个数据库都有自己的配置方法
    SQL Server 我不记得需要配置这个参数,数据库能自己匹配。我从没遇到过SQL Server的中文问题。如果有,也是我拿到的就是乱码,而不是保存后变成了乱码,是程序问题而不是SQL的问题。另,对于POST的提交,Tomcat可以很好的支持中文,只需要按照你写的那样
    request.setCharacterEncoding("gb2312");response
    如果是GET,则不行。Tomcat的默认URL编码不能很好的支持,你可以修改Tomcat/conf/server.xml
        <Connector port="80" maxHttpHeaderSize="8192"
                   maxThreads="50" minSpareThreads="20" maxSpareThreads="30"
                   enableLookups="false" redirectPort="443" acceptCount="50"
                   connectionTimeout="20000" disableUploadTimeout="true"                URIEncoding="UTF-8" useBodyEncodingForURI="true"    
                   />
    最后面的是编码方式,你可以自己尝试看看,如果不能用,就把UTF-8改成GBK再看看。