Khi tiêu đề cho biết: bộ mã hóa nào cho tôi khoảng trống %20
như trái ngược với +
? Tôi cần nó cho android. java.net.URLEncoder.encode cung cấp cho +
java.net.URLEncoder.encode mã hóa không gian dưới dạng + nhưng tôi cần% 20
12
A
Trả lời
2
Bạn phải thay thế chính mình +
.
Ví dụ:
System.out.println(java.net.URLEncoder.encode("Hello World", "UTF-8").replace("+", "%20"));
Đối với cái nhìn hơn ở bài này:
25
Android có riêng của nó Uri
lớp mà bạn có thể sử dụng.
Ví dụ:
String url = Uri.parse("http://www.google.com").buildUpon()
.appendQueryParameter("q", "foo bar")
.appendQueryParameter("xml", "<Hellö>")
.build().toString();
kết quả trong
http://www.google.com?q=foo%20bar&xml=%3CHell%C3%B6%3E
Uri
Mã hóa ký tự trong chuỗi đưa ra là '%' - thoát octet sử dụng sơ đồ UTF-8. Lá thư ("A-Z", "a-z"), số ("0-9") và các ký tự không được đặt trước ("_- !. ~ '() *") còn nguyên vẹn.
Lưu ý: chỉ _-.*
được coi là các ký tự không được đặt trước bởi URLEncoder
. !~'()
sẽ được chuyển đổi thành %21%7E%27%28%29
.