录数据库时候是中文,再从数据库取出后就是乱码,用了中文过滤器后没用,请问怎么解决!(这是JAVASCRIPT的问题)
过滤器应该是没问题的
package org.sshtest.common;import java.io.*;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.*;public class SetCharacterEncodingFilter implements Filter {
private String encoding ="utf-8"; private FilterConfig filterConfig = null; private boolean enable = true; public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
if (enable || (request.getCharacterEncoding() == null)) {
if (encoding != null)
request.setCharacterEncoding(encoding);
System.out.println("firter");
}
chain.doFilter(request, response);
} public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter("encoding");
String value = filterConfig.getInitParameter("enable");
if (value == null || value.equalsIgnoreCase("true")
|| value.equalsIgnoreCase("yes"))
this.enable = true;
else
this.enable = false;
} public void destroy() {
this.filterConfig = null;
this.encoding = null;
} /**
 * @return Returns the filterConfig.
 */
public FilterConfig getFilterConfig() {
return filterConfig;
} /**
 * @param filterConfig
 *            The filterConfig to set.
 */
public void setFilterConfig(FilterConfig filterConfig) {
this.filterConfig = filterConfig;
}
}

解决方案 »

  1.   

    从某些数据库里读出乱码 
        解决办法:把你要显示成中文的部分重新编码 
     例如: while (rs.next())...{
     String col1 = rs.getString(1);
     String col2 = rs.getString(2);
     String col3 = rs.getString(3);
     float col4 = rs.getFloat(4); //convert character encoding
     col1=new String(col1.getBytes("ISO-8859-1"),"GB2312");
     col2=new String(col2.getBytes("ISO-8859-1"),"GB2312");
     col3=new String(col3.getBytes("ISO-8859-1"),"GB2312");