Tomcat7.0 servlet中文乱码问题

编程小小牛 2015-12-16 02:57:41
是这样, 由于一些原因,tomcat的server.xml 里面的URIEncoding="GBK" 是配置好的不能变,现在我想要写个servlet
用url 传中文 可是老是出现乱码,求解决啊!!!
最不能理解的是 我写了一个demo

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
PrintWriter out = response.getWriter();
String test = request.getParameter("test");
out.print(test);
}


这样访问 url:
     http://localhost/EncodingCode/Message?test=中国     

我直接点击Eclipse的运行,在IE里面数据上面的url 没有乱码, 可以我把这个demo部署到服务器上,在IE里面数据上面的url 就乱码了,为啥???
...全文
225 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2015-12-21
  • 打赏
  • 举报
回复
一般JSP、servlet、tomcat、mysql的编码一致就不会出现乱码问题。
开拓者Amadues 2015-12-21
  • 打赏
  • 举报
回复
引用 8 楼 u014771160 的回复:
是的 我的是get方式请求的,楼上的好像都是Post请求的处理方法,不过还是要先谢谢大家, 这里再多问一遍啊,对于get方式的处理方式,单方面服务器端做字节解码是不够的吧,是不是还需要客户端对中文进行Encode啊( 比如开发APP 时的网络通信,需要调用Servlet这种),那么如果是直接用浏览器访问呢( 就是直接在浏览器地址栏里面写入带中文的地址,是不是不同的浏览器对URL里的中文会有不同的Ecode啊?)还请进一步指教一番。
get方法的乱码解决比post简单,用你1楼的方法就可以,2楼的方法,写在servlet里,可以解决post乱码,但缺点是每个servlet都要写这两句话。 关于你后面的那个问题,最好要保证客户端传过来也是所需要的编码,这个就看你数据源是什么编码了,比如HTML文件,网页头部都可以设置编码的。如何显示是另外一回事,浏览器可以设置以什么编码显示。
编程小小牛 2015-12-20
  • 打赏
  • 举报
回复
引用 4 楼 u010286751 的回复:
get请求重新编码
new String(value.getBytes("iso-8859-1"),"gbk"); 
post请求直接设置
request.setCharacterEncoding("gbk")
最好写一个过滤器http://blog.csdn.net/u010286751/article/details/30350431
是的 我的是get方式请求的,楼上的好像都是Post请求的处理方法,不过还是要先谢谢大家, 这里再多问一遍啊,对于get方式的处理方式,单方面服务器端做字节解码是不够的吧,是不是还需要客户端对中文进行Encode啊( 比如开发APP 时的网络通信,需要调用Servlet这种),那么如果是直接用浏览器访问呢( 就是直接在浏览器地址栏里面写入带中文的地址,是不是不同的浏览器对URL里的中文会有不同的Ecode啊?)还请进一步指教一番。
孤鸿铩羽 2015-12-20
  • 打赏
  • 举报
回复
request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8");
我要爆炸啦 2015-12-17
  • 打赏
  • 举报
回复
写个过滤器吧
hpulfc 2015-12-17
  • 打赏
  • 举报
回复
楼上都是正解,但最好写一个过滤器统一处理
Shadow0418 2015-12-16
  • 打赏
  • 举报
回复
get请求重新编码
new String(value.getBytes("iso-8859-1"),"gbk"); 
post请求直接设置
request.setCharacterEncoding("gbk")
最好写一个过滤器http://blog.csdn.net/u010286751/article/details/30350431
Jacky【YL】 2015-12-16
  • 打赏
  • 举报
回复
设置编码格式为uft-8 response.setCharacterEncoding("UTF-8");
banyoukang 2015-12-16
  • 打赏
  • 举报
回复
乱码问题配置一个filter最好,所有的请求过滤一遍,配置编码格式为 utf-8 当然,如果是测试项目就直接在servlet中过滤就行 request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8");
编程小小牛 2015-12-16
  • 打赏
  • 举报
回复
下面的问题解决了,直接是因为tomcat的服务器的server.xml 没有 URIEncoding="GBK", 但是为什么怎样解决乱码的问题吗?

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧