我用myEclicpe做的bbs项目,用的是mySQL数据库,从数据库里面取出数据后显示到页面就成乱码了,数据库中可以正常显示中文,可放到页面上面中文就显示不了了。麻烦各位大哥大姐帮帮忙?

解决方案 »

  1.   

    看下你的数据库的编码格式和myeclipse的编码格式一致不?
      

  2.   

    String s= new String ("".getBytes("iso8859-1"),"UTF-8");
    看看是不是因为数据库里面是 iso8859-1
      

  3.   

    可以下载或者写一个Filter专门处理这种字符乱码的问题
      

  4.   


    第一:首先确认下你的数据库的编码是gb2312还是ISO8859-1,以你现在的情况我觉得是gb2312。
    简单的说就是tomcat内部编码是ISO8859-1,所以在页面显示中文时的时候就会出现乱码。
    你可以设置jSP页面, <!@ page contentType="text/html; charset=gb2312 @>第二:如果第一种方法没用的话, 还有一个万能的方法那就是转码:
    例如: String str = new String(request.getParameter("参数").getBytes("ISO8859-1"), "GB2312");这样将每个字节都转换成以GB2312编码的字节兄弟你先试试吧, 再不会就是网上搜搜,关于编码的资料一搜就出来好多!
      

  5.   

    你数据库的编码和myeclipse要一样
    都用utf-8吧;
      

  6.   

    配置数据库时在url中指定编码
    jdbc:mysql://ip:3306/db_name?useUnicode=true&amp;characterEncoding=utf8
      

  7.   

    给你一个过滤器,能解决挺多乱码问题package com.sxit.filter;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 FilterEncoding implements Filter {
    // The filter configuration object we are associated with. If
    // this value is null, this filter instance is not currently
    // configured.
    private FilterConfig filterConfig = null; public FilterEncoding() {
    } public void doFilter(ServletRequest request, ServletResponse response,
    FilterChain chain) throws IOException, ServletException {
    if (request.getCharacterEncoding() == null
    || !(request.getCharacterEncoding().equals("UTF-8"))) {
    try {
    request.setCharacterEncoding("UTF-8");
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    try {
    chain.doFilter(request, response);
    } catch (ServletException sx) {
    filterConfig.getServletContext().log(sx.getMessage());
    } catch (IOException iox) {
    filterConfig.getServletContext().log(iox.getMessage());
    }
    } public void destroy() {
    } public void init(FilterConfig filterConfig) { this.filterConfig = filterConfig; }
    }
    在xml中配置一下,下面是我的配置:
    <filter>
        <filter-name>filterEncoding</filter-name>
        <filter-class>com.sxit.filter.FilterEncoding</filter-class>
      </filter><filter-mapping>
        <filter-name>filterEncoding</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>
      

  8.   

    数据库编码、页面编码、eclispe编码、tomcat编码等等一致就可以了
      

  9.   

    其实首先对request对象设置接受流的字符格式,然后设置response对象字符格式,当然这得和前面的request对象的一致!
    例如:request.setContentType("utf-8");