DBMNG数据库管理与应用

书籍是全世界的营养品。生活里没有书籍,就好像没有阳光;智慧里没有书籍,就好像鸟儿没有翅膀。
当前位置:首页 > 经验分享 > WEB

WEB开发中各种乱码问题处理全集

web开发各种乱码问题处理全集 保证解决99%的乱码错误(包括mysql的乱码解决,使用struts2框架的乱码问题)

转载请注明出处 csdn wankaiming


       在项目中经常会遇到乱码问题,出现的情况总的分为三种。


第一种:页面显示乱码 这个只要在页面设置好编码即可显示正常  




[html] view plaincopyprint?
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>  




第二种:页面之间传递数据的时候发生乱码或者页面和servlet传递数据的时候发生乱码,这个时候配置下过滤器即可


如下建个过滤器类




[java] view plaincopyprint?
<pre name="code" class="java">package com.mobile.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;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
  
public class CharacterEncodingFilter implements Filter {  
  
    public void destroy() {  
        // TODO Auto-generated method stub  
  
    }  
  
    public void doFilter(ServletRequest arg0, ServletResponse arg1,  
            FilterChain arg2) throws IOException, ServletException {  
        // TODO Auto-generated method stub  
        HttpServletRequest request=(HttpServletRequest) arg0;  
        HttpServletResponse response=(HttpServletResponse) arg1;  
        request.setCharacterEncoding("GB18030");  
        response.setCharacterEncoding("GB18030");  
        arg2.doFilter(request, response);  
    }  
  
    public void init(FilterConfig arg0) throws ServletException {  
        // TODO Auto-generated method stub  
  
    }  
  
}</pre><br>  
<br>  
<pre></pre>  
<p></p>  
<pre></pre>  
<span style="color:#ff0000">web.xml</span>中注册好过滤器  
<p></p>  
<p><span style="font-family:'Microsoft YaHei'"><span style="font-size:16px"></span></span></p>  
<pre name="code" class="html">  <filter>  
      <filter-name>char</filter-name>  
      <filter-class>com.mobile.filter.CharacterEncodingFilter</filter-class>  
    </filter>  
    <filter-mapping>  
      <filter-name>char</filter-name>  
      <url-pattern>/*</url-pattern>  
    </filter-mapping></pre><br>  
第三种:使用struts2框架的时候乱码,这个即使设置过滤器也没用,因为struts2的过滤器会优先执行,你改变xml当中过滤器的位置也是没有用的这个需要修改struts2.xml文件 在package标签中加入如下语句即可解决  
<p></p>  
<p><span style="font-family:'Microsoft YaHei'"><span style="font-size:16px"></span></span></p>  
<pre name="code" class="html"> <constant name="struts.i18n.encoding" value="GB18030"></constant></pre><br>  
第四种:乱码的出现跟数据库有关 oracle我用的一直没问题。在用mysql的时候出现了问题。前三种方法全部试了之后依然乱码,因为错误发生在数据库上。我用的是hibernate 处理方法是修改配置文件<span style="color:#ff0000">hibernate.cfg.xml</span>  
<p></p>  
<p><span style="font-family:'Microsoft YaHei'"><span style="font-size:16px"></span></span></p>  
<pre name="code" class="html">      <property name="connection.url">  
            jdbc:mysql://127.0.0.1:3306/onlineexam?characterEncoding=utf8  
        </property></pre><br>  
当然注意此处onlineexam是工程名  utf-8要和你安装mysql的时候选择的相同 一般默认就是这个了。  
<p></p>  
<p><span style="font-family:'Microsoft YaHei'; font-size:16px">不用hibernate写url的时候也跟上这个?XXX 即可</span></p>  
<p><span style="font-family:'Microsoft YaHei'; font-size:18px">比如weblogic当中设置url的时候这么写</span></p>  
<p><span style="font-family:'Microsoft YaHei'; font-size:18px"><img src="http://my.csdn.net/uploads/201206/12/1339471747_3939.JPG" alt=""><br>  
</span></p>  
<p><span style="font-family:'Microsoft YaHei'"><span style="font-size:16px"><br>  
</span></span></p>  
<p><span style="font-family:'Microsoft YaHei'"><span style="font-size:16px">相信以上基本解决了你的乱码问题。还有一点需要提醒,整个工程建议从头到尾都使用一个编码,比如此处我全部使用的GB18030<br>  
<br>  
</span><br>  
</span></p>  
<pre></pre>  
<pre></pre>  
<pre></pre>  
<pre></pre>  

本站文章内容,部分来自于互联网,若侵犯了您的权益,请致邮件chuanghui423#sohu.com(请将#换为@)联系,我们会尽快核实后删除。
Copyright © 2006-2023 DBMNG.COM All Rights Reserved. Powered by DEVSOARTECH            豫ICP备11002312号-2

豫公网安备 41010502002439号