【发布时间】:2016-06-26 01:32:05
【问题描述】:
我正在尝试编写一个包含此类字符串的字节缓冲区 &field_Value=
kggsW9YizUuRpjB/RtppZImnC8SekMGAWGnCmw+wPMwn7fWJva0QbSK/Slt/DDsZ
通过 HttpURLConnection,但我收到 &field_Value=
kggsW9YizUuRpjB/RtppZImnC8SekMGAWGnCmw wPMwn7fWJva0QbSK/Slt/DDsZ
所以“+”是唯一不发送的字符。它发生在我所有包含“+”的字符串中。
您能告诉我如何对字符串进行编码或我做错了什么吗?
这是我的代码:
发件人:
url = new URL(url_globalApp);
connection = (HttpURLConnection)url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
connection.setRequestProperty("Content-Language", "en-US");
connection.setRequestProperty("Accept-Charset", "UTF-8");
connection.setUseCaches (false);
connection.setDoInput(true);
connection.setDoOutput(true);
//Send request
DataOutputStream wr = new DataOutputStream (
connection.getOutputStream ());
//**************** first try ************//
wr.write(pairs_1.getBytes("UTF-8"), 0, pairs_1.length());
//**************** second try ************//
//wr.writeBytes(new String(pairs_1.getBytes(),"UTF-8"));
//**************** third try ************//
//wr.writeUTF(pairs_1);
wr.flush ();
wr.close ();
小服务程序:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
Map <String,String[]> parameters = request.getParameterMap();
System.out.println(parameters.get("field_value_1")[0]);
【问题讨论】:
-
URLEncode
+;这是' '的编码。 -
是的,我注意到了。我必须成为“+”中的“”吗?还有其他解决方案吗?我会在这个 servlet 中收到很多信息。
-
可以使用
URLEncoder.encode(String)对整个String进行编码。 -
谢谢,这是正确的编码方式,但是当我尝试获取参数 Map 时,它不起作用。至少字符串在服务器端是可以的。
标签: java servlets utf-8 httpurlconnection