Trong Java, tôi cần phải sử dụng HTTP bài viết để gửi yêu cầu đến máy chủ, nhưng nếu trong tham số của URL có chứa một số ký tự đặc biệt nó ném dưới ExceptionURL và nhân vật đặc biệt giải mã trong Java
java. lang.IllegalArgumentException: URLDecoder: nhân vật bất hợp pháp hex trong thoát (%) mẫu - Đối với chuỗi đầu vào: "& '
mã này để gửi dữ liệu
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(URL);
String sessionId = RequestUtil.getRequest().getSession().getId();
String data = arg.getData().toString();
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair(param1, data));
params.add(new BasicNameValuePair(param2, sessionId));
httpPost.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
HttpResponse response = (HttpResponse) httpclient.execute(httpPost);
Và ở phía máy chủ, tôi sử dụng mã bên dưới để đọc thông tin
String data = request.getParameter(param1);
if (data != null) {
actionArg = new ChannelArg(URLDecoder.decode(data, "UTF-8"));
}
Mã này hoạt động một cách chính xác nhưng nếu tôi nhập một số ký tự đặc biệt như [a あ あ # $% & '(<>? /., あ あ あ あ あ], nó sẽ ném ngoại lệ. Tôi tự hỏi nếu có ai đó có thể giúp tôi một số gợi ý để có thể mã hóa và giải mã các ký tự đặc biệt?
Cảm ơn bạn rất nhiều trước.
Tôi giám sát một giải pháp tốt hơn. Bạn bè của chúng tôi từ apache có StringEscapeUtils (org.apache.commons.lang.StringEscapeUtils). Vui lòng kiểm tra xem nó có hoạt động không. –