第1个回答 2009-02-12
wjjcml1982 - 助理 二级说的对 照他那样改 还有一个办法
就是像 kalier - 见习魔法师 三级 写个过滤器
package com.common.web;
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;
/**
* 过滤器 处理乱码
* 杨悦 2009.01.20
* @author yy
*
*/
public class CharFilter implements Filter {
public void destroy() {
}
public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("gbk");
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws ServletException {
}
}
然后在web.xml加下配置:
<!--
在这里声明一个过滤器 为他指定名字为charFilter 指定的类是
com.common.web.CharFilter
-->
<filter>
<filter-name>charFilter</filter-name>
<filter-class>com.common.web.CharFilter</filter-class>
</filter>
<!--
在这里设置上面声明的过滤器的过滤的范围
filter-name 过滤器的名字 就是声明的那个
url-pattern 范围 /*是所有
-->
<filter-mapping>
<filter-name>charFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
这样就不怕了
另外 过滤器还可以查看当前用户登陆状况 Session 是否存在等 具体的可以在过滤器那个类中改 如果不符合条件自动跳转到指定页 希望对你有帮助本回答被提问者采纳
第2个回答 2015-12-16
转码可以在页面中或是sevlet以及过滤都可以解决的,下面以页面和servlet为例:
方法一:设置 request 和 response 的编码 [ 页面编码必须为 u8 ]
request.setCharacterEncoding("UTF-8");//传值编码
response.setContentType("text/html;charset=UTF-8");//设置传输编码
方法二:
String str1=传来的数据。
String ss=new String(str1.getBytes("ISO-8859-1"),"utf-8"); //转码UTF8
第3个回答 2009-02-12
1) 更改 D:\Tomcat\conf\server.xml,指定浏览器的编码格式为“简体中文”:
方法是找到 server.xml 中的
<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding='GBK' />
标记,粗体字是我添加的。
可以这样验证你的更改是否成功:在更改前,在你出现乱码的页面的IE浏览器,点击菜单“查看|编码”,会发现“西欧(ISO)”处于选中状态。而更改后,点击菜单“查看|编码”,会发现“简体中文(GB2312)”处于选中状态。
b)更该 Java 程序,我的程序是这样的:
public class ThreeParams extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html; charset=GBK");
...
}
}
第4个回答 2009-02-12
一般get出问题的较多,你却相反,首先乱码的出现根本原因就是发送和接收时使用的编码不一致,你仔细检查一下,页面的编码,和接收用的编码。TOMCAT也可以设置编码的,不过那个主要是用来解决GET请求乱码的,一般POST很少出现乱码的。
第5个回答 2009-02-12
写一个fitter来统一编码。 我是手机手打的 希望对您有帮助,有疑问的话我们保持联系。