当前位置: 技术问答>java相关
为什么在linux上,response.sendRedirect有问题?
来源: 互联网 发布时间:2015-03-24
本文导语: 我写了一个servlet,其中要将错误信息转发: url = String url = "error?text=" + java.net.URLEncoder.encode("错误"); res.sendRedirect(url); 在error中,用URLDecoder.decode(text),即可得到中文。 这个servlet在win2000上正常工作,但在linux redh...
我写了一个servlet,其中要将错误信息转发:
url = String url = "error?text=" + java.net.URLEncoder.encode("错误");
res.sendRedirect(url);
在error中,用URLDecoder.decode(text),即可得到中文。
这个servlet在win2000上正常工作,但在linux redhat 7.2中就不行。
我用了new String(str.getBytes(text), "ISO-8859-1","GB2312")等方法,但没有用。
结果地址栏中应当是B2%E2%CA%D4%D2%B3%C3%E6这样的串才对。
但现在是:????或是%3F%3F%3F%3F%3F%3F%3F%3F。
哪位高手指教。在下感激涕零!
url = String url = "error?text=" + java.net.URLEncoder.encode("错误");
res.sendRedirect(url);
在error中,用URLDecoder.decode(text),即可得到中文。
这个servlet在win2000上正常工作,但在linux redhat 7.2中就不行。
我用了new String(str.getBytes(text), "ISO-8859-1","GB2312")等方法,但没有用。
结果地址栏中应当是B2%E2%CA%D4%D2%B3%C3%E6这样的串才对。
但现在是:????或是%3F%3F%3F%3F%3F%3F%3F%3F。
哪位高手指教。在下感激涕零!
|
你的servlet是怎么编译的?
在Redhat 7.2上的String的缺省编码是iso-8859-1
而在Windows 2000上String的缺省编码是gb2312
解决办法如下:
先查看你的应用服务器的配置
然后在Servlet中加入如下两行
response.setContentType( "text/html; charset=GBK" );
request.setCharacterEncoding( "GBK" );
如果你的Servlet不是自动编译的话,你需要编译的时候加上-encoding GBK选项
在Redhat 7.2上的String的缺省编码是iso-8859-1
而在Windows 2000上String的缺省编码是gb2312
解决办法如下:
先查看你的应用服务器的配置
然后在Servlet中加入如下两行
response.setContentType( "text/html; charset=GBK" );
request.setCharacterEncoding( "GBK" );
如果你的Servlet不是自动编译的话,你需要编译的时候加上-encoding GBK选项
|
你用TOMCAT?