request.setCharacterEncoding()只能解决post方式提交的中文数据,而get方法好象我如何该都是乱码,后来改了server.xml里的URLEncoding属性后才好,请问可以有别的办法可以解决get参数的乱吗问题吗?另外谁有关于乱码的好文章,请贴出来,在此先谢谢了!
解决方案 »
- 郁闷的是用java这么久了,居然file.renameTo()方法没有成功一次
- 遇到一道题目不知道如何解决
- 代码质量的疑问...
- 关于密钥的问题?初学者大家来帮忙。
- java集合的总结,给初学者一点帮助!(占大家点地方别介意)
- 怎样将整形 4 输出成0004 的字符串形式
- 为什么在java中一个int乘一个double的结果与正确结果有偏差!!例如:70000 * 0.3571 = 24997.000000000003,正确答案应该就是24997
- 我如何让一个带有JScrollPane的TextArea充满整个窗口?初学
- 资源文件压入 jar 包里就不能用了,怎么解决?
- 我当的这个JB5是不是不全
- 请问大家:如何用java实现重启本地计算机的功能,本机为win2000?
- jb2007,jb系列的掘墓人?
package asatapp;import javax.servlet.Filter;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.FilterChain;
import java.io.IOException;
import javax.servlet.http.*;public class EncodingFilter implements Filter {
private String encoding;
public EncodingFilter() {
}
public void init(FilterConfig fconfig) throws ServletException {
encoding=fconfig.getInitParameter("charset");
}
public void doFilter(ServletRequest req, ServletResponse resp,FilterChain fchain) throws IOException,
ServletException
{
HttpServletRequest request=(HttpServletRequest)req;
request.setCharacterEncoding(encoding);
fchain.doFilter(req,resp);
}
public void destroy() {
}
}
WEB.XML中
<filter>
<filter-name>encoding</filter-name>
<filter-class>asatapp.EncodingFilter</filter-class>
<init-param>
<param-name>charset</param-name>
<param-value>gb2312</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
你上网查filter用法就行
如果是5 以后的 则需要修改tomcat配置文件server.xml<Connector
port="80" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true"
URIEncoding="UTF-8"
/>这里的UTF-8 根据你的情况自己选择合适的字符集
try {
byte bt[] = str.getBytes("ISO-8859-1");
str = new String(bt);
} catch (Exception ex) {
}
return str;
}
//调这个函数就可以了