myEclipe中的乱码问题? 我用myEclicpe做的bbs项目,用的是mySQL数据库,从数据库里面取出数据后显示到页面就成乱码了,数据库中可以正常显示中文,可放到页面上面中文就显示不了了。麻烦各位大哥大姐帮帮忙? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看下你的数据库的编码格式和myeclipse的编码格式一致不? String s= new String ("".getBytes("iso8859-1"),"UTF-8");看看是不是因为数据库里面是 iso8859-1 可以下载或者写一个Filter专门处理这种字符乱码的问题 第一:首先确认下你的数据库的编码是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编码的字节兄弟你先试试吧, 再不会就是网上搜搜,关于编码的资料一搜就出来好多! 你数据库的编码和myeclipse要一样都用utf-8吧; 配置数据库时在url中指定编码jdbc:mysql://ip:3306/db_name?useUnicode=true&characterEncoding=utf8 给你一个过滤器,能解决挺多乱码问题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> 数据库编码、页面编码、eclispe编码、tomcat编码等等一致就可以了 其实首先对request对象设置接受流的字符格式,然后设置response对象字符格式,当然这得和前面的request对象的一致!例如:request.setContentType("utf-8"); 正则表达式提取两个点号之间的文本 JDK7 帮忙写个简单的算法 养成JAVA编写好习惯,小心被忽悠 JSP小问题 求助:关于HashMap get()返回为空 UltraEdit如何配置java和javac命令 谁能提供java的打印程序? 请教数据类型的转换问题 applet的权限问题,请高手帮忙 谁帮写一个替换的正则表达式,谢谢! org.hibernate.QueryException: could not resolve property: DownloadFile
看看是不是因为数据库里面是 iso8859-1
第一:首先确认下你的数据库的编码是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编码的字节兄弟你先试试吧, 再不会就是网上搜搜,关于编码的资料一搜就出来好多!
都用utf-8吧;
jdbc:mysql://ip:3306/db_name?useUnicode=true&characterEncoding=utf8
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>
例如:request.setContentType("utf-8");