读取 MySQL 中文 乱码
场景:Java,Myeclipse,读取MySQL数据库
问题:读出来的中文在Myeclipse的控制台中显示为正常,在页面中显示中文乱码
------解决方案--------------------页面编码格式设置utf-8了吗
------解决方案--------------------应该是页面编码或是前后台数据传输编码设置的问题
------解决方案--------------------楼主此问题我之前遇到过,进入数据库,查看数据库的编码格式,应该是拉丁,改成utf-8,就可以了。当年为了这个问题求哥哥拜姐姐好几天。最后还是自己一步步排查出来的,哈哈,祝你好运
------解决方案--------------------数据库没问题了,在action中是数据是正确的。
那么就是在传值到jsp的时候编码出问题了。
1.看下工程的编码是否是utf-8
2.不行的话,就写个过滤器或拦截器处理一下编码问题。
------解决方案--------------------private String dbUrl = "jdbc:mysql://localhost:3306/BOOK?Unicode=true&characterEncoding=UTF-8"把UTF-8改成utf8试试。。
------解决方案--------------------在dao里取值的时候做下编码转换就可以了.
比如第一个字段是中文值
rs.getString(1).getBytes("iso-8859-1"),"GBK");
然后再赋值给javabean,展示中文就正常了.
这个问题我前几天遇到了,也是这么解决的.
------解决方案--------------------<meta http-equiv="content-type" content="text/html;charset=utf-8"> html页面有这句没?
------解决方案--------------------给你点排查的方法。
1.后台写个中文字符串,直接前台取,查看是否乱码。
2.在jsp上查看properties,就是alt+enter快捷键,查看编码是否为utf-8
我之前遇上了韩文乱码,经过struts一处理就变成乱码、、、
暂时我就想到这两点,希望能对你有点帮助
------解决方案--------------------1、数据库编码方式
2、web服务器编码方式
3、页面编码方式
以上都没问题,你用转码试下s.getBytes("iso-8859-1"),"GBK");
------解决方案--------------------服务器的语言版本问题吧。
------解决方案--------------------看看你的TOMCAT的配置文件用的什么编码格式
\tomcat\conf\server.xml
------解决方案--------------------找个已经把值传进去的,通过System.out.print(book.id)输出一下看看会不会出现乱码,如果不会就连接数据库写上jdbc:mysql://localhost:3306/showbook?characterEncoding=utf-8这样的格式,试一试
------解决方案--------------------设置下后台到页面的渲染字符格式
response.setContentType("text/html;charset=utf-8");
------解决方案--------------------因为后台打印的编码是对的,所以可以排除数据库的问题,关键是你怎样把后台得到 的数据传给前台的,Tomcat传输数据默认的编辑是iso-8859-1,所以可能是这里的问题