日期:2014-05-19  浏览次数:20696 次

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"));

这个应该可以解决乱码