一个乱码的解决方案,在线等,高手进,一定给分
我最近利用struts在做项目,凡是表单提交上来,只要是中文的数据都是乱码, 
 我也试过了request.setCharacterEncoding( "gb2312 ")都没有用.于是我自己写了一个转码类,已经可以把乱码正确的转换成中文了.但是由于有时一个表单中会有多个中文的属性,如果对其进行一一转码,效率比较低.于是,我转码的这样一个动作,把他放到了数据访问层,也就执行sql语句的时候做,即对整句sql语句进行转码,这样无论表单中有多少个中文属性,最后都将拼接成一个sql语句,我只要转码一次. 
 我数据访问层结构大体上是这样的,后台一个数据库操作的常用方法类(里面大概是一些增删改查的方法,我想用jdbc的大家都是这么用的吧),然后这些增删改查方法接受的参数一般都是一个sql字符串对象,而我的转码工作,就是在这些增删改查的方法中进行转码的,即对参数sql字符串对象进行转码,这样也能转码成功. 
 但是由于我项目中还使用到了例如dwr以及struts   的formfile等技术,而这些技术获取到的属性,本身已经是中文的了(我估计可能是它们内部对中文已经进行过转码了),这样就导致我在数据访问层拼接成的sql语句中已经是中文了,而这时候如果把sql语句传递到增删改查的方法中进行转码,反而会被转乱码(如果已经是中文进行转码,反而会变成乱码的).导致插入数据库中数据是乱码. 
 这样就导致,我不得不为了项目中使用到的一些其他技术获取到的已经中文,而去在后台进行判断是否该转码,这样破坏了后台方法调用的以及后台类的封装性. 
 不知道有没什么其他方法能解决. 
 问题不太难,就是很棘手.解决也很容易,但是为了一些小问题,而去破坏一个类的封装性或者类的结构,不是一个面向对象的良好设计 
 望高手指点,能在保证不破坏原先系统各个对象的结构的情况下,解决这个乱码问题.在线等,一定给分....
------解决方案--------------------import 
java.io.UnsupportedEncodingException;   
 import javax.servlet.http.HttpServletRequest; 
 import javax.servlet.http.HttpServletResponse;   
 import org.apache.struts.action.RequestProcessor;   
 public class Myprocess extends RequestProcessor {   
 protected boolean processPreprocess(HttpServletRequest s, HttpServletResponse arg1) { 
 		// TODO 自动生成方法存根 
 		try { 
 			s.setCharacterEncoding( "utf-8 "); 
 		} catch (Unsupported
EncodingException e) { 
 			// TODO 自动生成 catch 块 
 			e.printStackTrace(); 
 			return false; 
 		} 
 		return true; 
 	}   
 } 
 增加一个过滤器,把每次提交的字符串内容转成你所要的编码格式。
------解决方案--------------------什么也不说了,在tomcat的con/server.xml里找到 <connector port= "8080 ".../> 在里面加URIEncoding= "UTF-8 ",然后在你project里的web.xml加上 
 	 <filter>  
 		 <filter-name> SetCharacterEncoding </filter-name>  
 		 <filter-class> org.springframework.web.filter.CharacterEncodingFilter </filter-class>  
 		 <init-param>  
 			 <param-name> encoding </param-name>  
 			 <param-value> UTF-8 </param-value>  
 		 </init-param>  
 	 </filter>  
 这样的话post提交不会有乱码,get方法提交,你只需要用URLEncoder/URLDecoder就行了,不懂的可以mail to me :jaogun@163.com
------解决方案--------------------http://fll.blog.hexun.com/9156070_d.html
------解决方案--------------------关注
------解决方案--------------------过滤器,
------解决方案--------------------做个过滤器   自个写的 用的    
 用的时候部署下   
 目录:/*   
 成功了记得给分哦     
 呵呵   
 EncodingFilter.java   
 package com.Joshua.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 com.x3408.office.Constants;   
 public class EncodingFilter implements Filter {   
 	public void destroy() { 
 		// TODO 自动生成方法存根   
 	}   
 	public void doFilter(ServletRequest request, ServletResponse response, 
 			FilterChain chain) throws 
                         RS结果集分页,该怎么处理