我们有 独立的门户系统 和管理系统。以前 门户和 管理系统 两边都是用的iso8859-1,门户这边一个form 提交到管理这边。
现在门户改版 全改成 utf-8了 ,中文的 用户名 登陆就出现问题了,试了很多在 管理这边转换编码的方式都不行,请大家处处主意。
[b]问题补充:[/b]
第二种
tomcat的server.xml中
这个显然没有法用,用了n久的系统 太庞大 这些哪里可以改哦。
使用的是tomcat5吗?是针对post请求吗?
如果上述都是的话,那么使用楼上的过滤器设置一下编码就可以了。
如果是tomcat5的get请求那么就只用改服务器的配置文件了。
如果是其他服务器如:weblogic、jboss啥的话还可以使用服务器自身的配置文件来设置请求的编码。
就那么几种方法 你一个个试试就是了
第一种
request.setCharacterEncoding("你的目标编码");
第二种
tomcat的server.xml中
注意其中的useBodyEncodingForURI="true"这句在默认情况下是没有的,自己加进去
第三种:
写几句代码
<%!
public String codeToString(String str){
//处理中文字符串的函数
String s=str;
try{
byte temp[ ]=s.getBytes("ISO-8859-1");
s=new String(temp);
return s;
}
catch(Exception e){
return s;
}
}
%>
试试用URLEncode的方法来做试试。
更多具体的解决方案与对策,可以看[url]http://playfish.iteye.com/blog/85900[/url]
以及
[url]http://playfish.iteye.com/blog/186293[/url]
希望对你有帮助。
[quote]
如果submit.jsp提交英文字符能正确显示,如果提交中文时就会出现乱码。原因:浏览器默认使用UTF-8编码方式来发送请求,而UTF- 8和 GB2312编码方式表示字符时不一样,这样就出现了不能识别字符。解决办法:通过request.seCharacterEncoding ("gb2312")对请求进行统一编码,就实现了中文的正常显示。修改后的process.jsp代码如下:
<%@ page contentType="text/html; charset=gb2312"%>
<%
request.seCharacterEncoding("gb2312");
%>
[/quote]
http://leonelwong.iteye.com/admin/blogs/311388
这是乱码处理集合,你看看对你有没有帮助
写个过滤器吧,就把你网站下的所有目录都过滤.
public class SetCharacterEncodingFilter implements Filter {
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("utf-8");
chain.doFilter(request, response);
}
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}