JBOSS中文乱码问题寻求解决方法--送分500~1000! 我知道需要的URL后加编码参数,但不知道MSSQL的编码参数是什么? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 MSSQL好像可以不用转码,或者在程序中转换吧 过滤会降低效率的!!!!!web.xml改为 <servlet-name>action</servlet-name> <servlet-class>com.cn.ConvertCode</servlet-class> -------原来是ActionServlet ConvertCode.javapackage com.cn;import org.apache.struts.action.*;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;import javax.servlet.ServletException;public class ConvertCode extends ActionServlet { /** * process * * @param request HttpServletRequest * @param response HttpServletResponse * @throws IOException * @throws ServletException * @todo Implement this org.apache.struts.action.ActionServlet method */ protected void process(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { System.out.println("Process!!!"); request.setCharacterEncoding("GB2312"); super.process(request,response); }}这样以后用POST提交到Action的中文就没有问题了!可是用超链到Action的话就是不行了???怎么办呀!!tomcat中可以在server.xml修改 <Connector URIEncoding="GB2312" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" port="8080" redirectPort="8443" maxSpareThreads="75" maxThreads="150" minSpareThreads="25"> </Connector>-----------注意 URIEncoding="GB2312"请问在jboss中怎么设置(URIEncoding="GB2312")呀!!!急!!!!!!! 使用过滤器,而且过滤器的编码和jsp中的一致,就不可能出现这个问题如果数据库是GBK的编码,就用GBK;如果数据库是UNICODE的编目,用GBK或者UTF-8都可以 升级Jboss到4.0.2,中文问题非常容易解决。 import javax.servlet.ServletException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import java.io.IOException;//***************************************************************************** /** * <p>Title: 处理中文问题</p> * <p>Description: 将请求的页面的编码转换为指定编码格式</p> * <li>web.xml配置参考 </li> * ========================================================================== * <br> * <filter> * <filter-name>EncodingFilter</filter-name> * <filter-class>com.ite.common.EncodingFilter</filter-class> * <init-param> * <param-name>encoding</param-name> * <param-value>GBK(编码格式)</param-value> * </init-param> * </filter> * <filter-mapping> * <filter-name>EncodingFilter</filter-name> * <url-pattern>/*</url-pattern> * </filter-mapping> * ========================================================================== * <br> * <p>Copyright: Copyright (c) 2003</p> * <p>Company: </p> * @author 宁郅杰 * @version 1.0 *///*****************************************************************************public class EncodingFilter implements Filter { //参数变量,用于取得servlet配置和编码格式 private String targetEncoding = "GBK"; public void init(FilterConfig config) throws ServletException { //取得配置编码格式 this.targetEncoding = config.getInitParameter("encoding"); this.targetEncoding = this.targetEncoding == null ? "GBK" : this.targetEncoding; } public void destroy() { this.targetEncoding = null; } public void doFilter(ServletRequest srequest, ServletResponse sresponse, FilterChain chain) throws IOException, ServletException { String webEconding = srequest.getCharacterEncoding(); //请求编码格式为null或者与当前字编码格式不一致,重新设置字符集 if (webEconding == null || !webEconding.toUpperCase().equals(targetEncoding.toUpperCase())) { srequest.setCharacterEncoding(targetEncoding); } chain.doFilter(srequest, sresponse); }}试试这个文件,应该可以解决,上面有配置方法 一个关于类的基础知识 Tomcat6.0配置域名 csdn里面咋见不到搞portal的呢? 求技术网站 FreeMarker模板可不可以套用模板或静态html网页? 这种在循环中的值如何获取啊? 如何清空文件里面的内容 菜鸟问题:望高手解答 Struts+Spring+Hibernate分页 jsp页面向Action传值路径的问题 求助:JSTL环境出错! 下面是一个权限判断的
<servlet-name>action</servlet-name>
<servlet-class>com.cn.ConvertCode</servlet-class> -------原来是ActionServlet ConvertCode.javapackage com.cn;import org.apache.struts.action.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import javax.servlet.ServletException;public class ConvertCode extends ActionServlet {
/**
* process
*
* @param request HttpServletRequest
* @param response HttpServletResponse
* @throws IOException
* @throws ServletException
* @todo Implement this org.apache.struts.action.ActionServlet method
*/
protected void process(HttpServletRequest request,
HttpServletResponse response) throws IOException,
ServletException {
System.out.println("Process!!!");
request.setCharacterEncoding("GB2312");
super.process(request,response);
}}这样以后用POST提交到Action的中文就没有问题了!可是用超链到Action的话就是不行了???怎么办呀!!
tomcat中可以在server.xml修改
<Connector URIEncoding="GB2312" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" port="8080" redirectPort="8443" maxSpareThreads="75" maxThreads="150" minSpareThreads="25">
</Connector>
-----------注意 URIEncoding="GB2312"请问在jboss中怎么设置(URIEncoding="GB2312"
)呀!!!急!!!!!!!
如果数据库是GBK的编码,就用GBK;如果数据库是UNICODE的编目,用GBK或者UTF-8都可以
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import java.io.IOException;//*****************************************************************************
/**
* <p>Title: 处理中文问题</p>
* <p>Description: 将请求的页面的编码转换为指定编码格式</p>
* <li>web.xml配置参考 </li>
* ==========================================================================
* <br>
* <filter>
* <filter-name>EncodingFilter</filter-name>
* <filter-class>com.ite.common.EncodingFilter</filter-class>
* <init-param>
* <param-name>encoding</param-name>
* <param-value>GBK(编码格式)</param-value>
* </init-param>
* </filter>
* <filter-mapping>
* <filter-name>EncodingFilter</filter-name>
* <url-pattern>/*</url-pattern>
* </filter-mapping>
* ==========================================================================
* <br>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>
* @author 宁郅杰
* @version 1.0
*/
//*****************************************************************************public class EncodingFilter implements Filter {
//参数变量,用于取得servlet配置和编码格式
private String targetEncoding = "GBK"; public void init(FilterConfig config) throws ServletException {
//取得配置编码格式
this.targetEncoding = config.getInitParameter("encoding");
this.targetEncoding = this.targetEncoding == null ? "GBK" :
this.targetEncoding;
} public void destroy() {
this.targetEncoding = null;
} public void doFilter(ServletRequest srequest, ServletResponse sresponse,
FilterChain chain) throws IOException,
ServletException {
String webEconding = srequest.getCharacterEncoding();
//请求编码格式为null或者与当前字编码格式不一致,重新设置字符集
if (webEconding == null ||
!webEconding.toUpperCase().equals(targetEncoding.toUpperCase())) {
srequest.setCharacterEncoding(targetEncoding);
}
chain.doFilter(srequest, sresponse);
}
}试试这个文件,应该可以解决,上面有配置方法