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!
[解决办法]