iteye_5350
iteye_5350
2012-12-07 16:05

http请求头传递中文,服务器读取指定属性为乱码

已采纳

项目中用到httpClient向服务器发送http请求,具体代码如下:

[code="java"]
HttpClient httpclient = new DefaultHttpClient();

HttpPost httppost = new HttpPost("URL");
/**

  • 服务器端request.getHeader("zhongwen");获取
  • 的信息为乱码(尝试了一些转码方法),
  • 麻烦各位大牛帮下忙 **/ httppost.addHeader("zhongwen", "中文测试");

FileBody bin = new FileBody(new File("D://测试附件.zip"));
MultipartEntity reqEntity = new MultipartEntity();
reqEntity.addPart("upload", bin);

httppost.setEntity(reqEntity);
HttpResponse response = httpclient.execute(httppost);
[/code]
如果哪位大牛有别的解决方案,
可以将“zhongwen”,"upload"两属性传递至服务器,
麻烦给下

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • jinnianshilongnian jinnianshilongnian 9年前

    1、客户端
    method.addRequestHeader("hello", URLEncoder.encode("中文", "UTF-8"));

    2、服务器
    value = URLDecoder.decode(value);

    点赞 评论 复制链接分享
  • u011606457 _1_1_7_ 9年前

    用native2ascii命令把
    中文测试
    转换一下:

    httppost.addHeader("zhongwen", "\u4e2d\u6587\u6d4b\u8bd5");
    native2ascii在java安装目录下

    点赞 评论 复制链接分享
  • u011606457 _1_1_7_ 9年前

    检查的你的java源代码文件是什么编码,一般用“UTF-8”

    点赞 评论 复制链接分享

相关推荐