今天在开发腾讯微博应用的时候,发现部署在Linux上面的jsp无法同时发送图片和汉字,会出现鉴权失败的错误,原因是参数中的中文汉字乱码了!但是在本地winxp环境使用eclipse调试却可以正常发送!

经过调试,发现是httpClient中的MultipartEntity参数编码出现了异常,修改如下:
MultipartEntity reqEntity = new MultipartEntity();
..........
reqEntity.addPart(param[0], new StringBody(value));
改为
MultipartEntity reqEntity = new MultipartEntity();
..........
reqEntity.addPart(param[0], new StringBody(value,CharsetUtil.getCharset(chartSet)));

chartSet是一个字符串变量,指编码格式,我的值是"UTF-8"。

MultipartEntity的addPart方法是指把需要提交的参数追加到请求当中。