当前位置: 代码迷 >> J2EE >> servlet的request.getInputStream()如何得到中文
  详细解决方案

servlet的request.getInputStream()如何得到中文

热度:135   发布时间:2016-04-22 00:56:09.0
servlet的request.getInputStream()怎么得到中文
我客户端使用httpClient方式 的post方法请求服务器。
并设置了参数,但在web服务器接收到的name=test%25E6%25B5%258B%25E8%25AF%2595 中文变成了后面那些%354。请问怎么解决。我传过来的是中文,现在我需要的是中文。
Java code
servlet代码:BufferedInputStream in = new BufferedInputStream(request.getInputStream());        byte[] b = new byte[1024];            StringBuilder sb_utf = new StringBuilder(64);        int i=0;        do {            i = in.read(b);            if (i > 0) {                sb_utf.append(new String(b, 0, i,"UTF-8"));            }        } while(i == 1024);


------解决方案--------------------
post 怎么会是这种编码方式
你这怎么像是get方式
你用base64解码试试
------解决方案--------------------
//用这个读中文 试试
BufferedReader reader = new BufferedReader(new InputStreamReader(request.getInputStream()));
------解决方案--------------------
先调用request.setCharacterEncoding("gb2312");再说
------解决方案--------------------
requet.setCharacterEncoding("gb2312");
BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream(),"gb2312"));

这个应该可以解决乱码
------解决方案--------------------
写个转码的方法,ok!
------解决方案--------------------
探讨
requet.setCharacterEncoding("gb2312");
BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream(),"gb2312"));

这个应该可以解决乱码
  相关解决方案