项目采用UTF8编码,数据库是既有数据库,字符集为ISO8859-1,将UTF8编码的中文转换成ISO8859-1存储到数据库中,数据库显示就是乱码,这个是为什么呢,我已经转成ISO8859-1了呢。但是如果项目使用GBK编码,那么用这样的方法数据库查询出来完成不存在乱码问题。这个又是为什么。我现在被编码弄的很恼火请教达人PS:1.数据库为ORACLE,西文字符集
2.项目使用JSP,编码是UTF8,UT8的中文直接转换编码为GBK也会乱码
2.项目使用JSP,编码是UTF8,UT8的中文直接转换编码为GBK也会乱码
解决方案 »
- servlet filter应用过滤器连续显示两次的问题
- 我刷新页面的时候,总是弹出“不重新发送信息,则无法刷新网页”!
- Unable to initialize TldLocationsCache: XML parsing error on file /WEB-INF/tlds/struts-bean.tld
- 求--用struts+hibernate+sping--生成ajax动态树
- linux系统 不能生成缩略图
- SPRING APPLICATIONCONTEXT BEAN找不到类
- Stuts2拦截器问题,请大神解答。
- 我这样写web.xml,为什么运行晨报错?内容是。。。!
- iframe url有个参数包含中文(有英文)乱码
- session.isNew()什么意思,怎么理解,怎么用???
- java 生成csv文件,弹出下载对话框。。。
- jstl什么时候用配置tld?
package 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 EncodingFliter implements Filter{ public void destroy() {
} public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
arg0.setCharacterEncoding("gbk");
arg1.setCharacterEncoding("gbk");
arg2.doFilter(arg0, arg1);
} public void init(FilterConfig arg0) throws ServletException {
}}2 在\WebRoot\WEB-INF\web.xml 中配置
<filter>
<filter-name>自定义</filter-name>
<filter-class>过滤器的包名.类名</filter-class>
</filter>
<filter-mapping>
<filter-name>自定义</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
你的认识已经趋于客观了,但部分还不清晰。你考虑下向数据库塞数据时,为什么会存在一个jdbc规范?
jdbc规范数据类型为什么需要和数据库数据类型存在映射关系?谁来解决这些映射关系?谁来将java对象转化为数据库的对象?jvm中的对象即内存中字符的表达方式是什么编码方式?jvm内码是否固定?jvm中字符串对象到数据库的vchar[]对象编码的处理过程由哪些来完成?这么提问题,希望你别生气。
例如 任何编码都会包含ascII码。
FilterChain arg2) throws IOException, ServletException {
arg0.setCharacterEncoding("gbk");
arg1.setCharacterEncoding("gbk");
arg2.doFilter(arg0, arg1);}
你看下这行吧
你应该也把存入数据的代码发来看看
你吧编码都改成了GBK,提交上来的是UTF8转GBK已经是乱码了,再存到数据库中更加不知道是什么东西了。。
搞清楚问题本质后,往往会发现直接告诉问题答案对方也有可能不理解,还不如告诉他解决问题思考的方法。wypbt1032 对字符集知识知道的比你要多,所以我提了点建议。至于你现在提供给楼主的方法,你不觉的方向有问题?你这样的设置只能针对 http context-type=gbk的情况,做编码的统一。跟楼主的问题不搭边。至少你不了解 jvm 内码知识点。请在不了解别人的话的时候不要觉得别人的话是废话。 即使了解了别人的话,也请别说,因为能体现你的素质。
毕竟utf-8是unicode transform 形式,支持所有语言。而且http也多用utf-8进行统一。