jsp页面我设置为<%@ page contentType="text/html;charset=gbk"%>,我MyEclipse用的是9.0的版本,数据库用的sql2005的,只要添加到数据库的中文全是乱码?

解决方案 »

  1.   

    需要检查数据库字符集,Tomcat缺省字符集。你可以先在将数据保存入数据库(执行insert)之前,把信息都System.out.println()出来,看看是否正常,如果正常则说明主要问题应该出在数据库字符集配置上。反之则主要出在中间件的字符集配置上。
      

  2.   

    如果你是post方式写个过滤器
    import java.io.IOException;import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;public class EncodingFilter implements Filter {
    private String encoding = "GBK";
    public void doFilter(ServletRequest request, ServletResponse response,
    FilterChain filterChain) throws IOException, ServletException {
    request.setCharacterEncoding(encoding);
    filterChain.doFilter(request, response);
    }
    在web.xml中配置<filter>
    <filter-name>EncodingFilter</filter-name>
    <filter-class>com.forever.filter.EncodingFilter</filter-class>
    </filter>
    <filter-mapping>
    <filter-name>EncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>
    如果你是get方式或者超链接在tomcat中cof/server.xml 中  <Connector port="8080" protocol="HTTP/1.1" 
                   connectionTimeout="20000" 
                   redirectPort="8443" />加上URIEncoding= "GBK "
      

  3.   

    查看你数据库的编码格式sqlserver内部的存储是ucs-2 肯定不支持utf-8 直接显示默认的数据库排序规则是:SQL_Latin1_General_CP1_CI_AS,这就是乱码的原因设置为Chinese_PRC_CI_AS 设置方法,右击数据库,属性,选项,排序规则,下拉选择即可~查看数据库编码格式sql:SELECT COLLATIONPROPERTY('Chinese_PRC_Stroke_CI_AI_KS_WS', 'CodePage')936 简体中文GBK
    950 繁体中文BIG5
    437 美国/加拿大英语
    932 日文
    949 韩文
    866 俄文
    65001 unicode UFT-8 
      

  4.   


    那个是utf-8的你的是gbk  需要设置936       简体中文GBK
      

  5.   

    1·先找到从哪一步开始,才变成乱码的
    2·针对出现乱码的位置,进行解决。几种解决办法:页面及后台编码设置为统一的形式、写个过滤器、web服务器的编码、数据库的字符集根据自己的情况对症下药
      

  6.   

    解决中文乱码最有效的方法是:统一编码
    不管是页面,应用服务器,还是数据库,都设置成UTF-8或者GBK,这样就不会有中文乱码的困惑了
      

  7.   

    楼上的回复我看过了,我在Action里面打印了修改过的名字,全是问号,所以应该是JSP页面设置字符集的问题?
    我已经设置为UTF-8了,但打印出来的还是?号,求高人指点……