遇到的问题是:
通过java.net组件进行http-GET请求时,参数中带有中文字符,在服务器中出现中文乱码
例如:
String reqUrl = "http://"; StringBuffer sb = new StringBuffer(); sb.append("cloud_acc=").append(cloud_acc) .append("&cloud_acc_name=").append(cloud_acc_name) .append("&acc=").append(acc) .append("&super_acc=").append(super_acc); String reqdata = String.valueOf(sb); String response = HttpUtils.sendGet(reqUrl, reqdata);
解决的方法:
单独给中文字符进行编码
String reqUrl = "http://"; StringBuffer sb = new StringBuffer(); sb.append("cloud_acc=").append(cloud_acc) //对中文字符进行编码转换 .append("&cloud_acc_name=").append(URLEncoder.encode(cloud_acc_name,"GBK")) .append("&acc=").append(acc) .append("&super_acc=").append(super_acc); String reqdata = String.valueOf(sb); String response = HttpUtils.sendGet(reqUrl, reqdata);
尝试过的错误方法:
对整个请求进行编码转换: reqdata = new String(reqdata.getBytes(), "GBK");