Tôi muốn sử dụng lớp URLEncoder/URLDecoder (java.net.URLEncoder/URLDecoder) trong một ứng dụng và các phương thức: mã hóa (String s, String enc)/decode (Chuỗi s, String enc), nhưng tôi không biết giá trị của đối số String có thể là gì? Tôi muốn mã hóa/giải mã trong loại nội dung "M-www-form-urlencoded" MIME. Cảm ơn sự giúp đỡ của bạn.URLEncoder encode/URLDecoder giải mã trong java (Android)
Trả lời
Tham số mã hóa là mã hóa ký tự bạn đang sử dụng. For example "UTF-8"
.
Các JavaDoc có tất cả các chi tiết
JavaDoc không đề cập đến tất cả các định dạng mã hóa có thể có hoặc tôi cũng không thấy liên kết với ENUM có thể liệt kê chúng. – anon58192932
Trước tiên, bạn cần phải thiết lập các nội dung kiểu như một 'x-www-form-urlencoded'. Sau đó, bất kỳ nội dung nào bạn muốn mã hóa, mã hóa nó bằng cách sử dụng "UTF-8".
Ví dụ:
Đối với thiết lập nội dung cho 'x-www-form-urlencoded':
URL url = new URL("http://www.xyz.com/SomeContext/SomeAction"); <br>
URLConnection urlConnection = url.openConnection();<br>
....<br>
....<br>
urlConnection.setRequestProperty("Content-type","application/x-www-form-urlencoded");
Hoặc nếu bạn đang sử dụng một số JSP sau đó bạn có thể viết như sau trên trên đỉnh của nó.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %><br>
< META http-equiv="Content-Type" content="text/html; charset=UTF-8">
< FORM action="someaction.jsp" enctype="application/x-www-form-urlencoded" name="InputForm" method="POST">
Và để sử dụng URLEncoder:
String encodedString = URLEncoder.encode("hello","UTF-8");
Tôi đã thực hiện: - HttpPost post = new HttpPost ("url"); - post.setHeader ("Content-Type", "application/x-www-form- urlencoded"); - Chuỗi mã hóaString = URLEncoder.mã hóa ("hello", "UTF-8"); - StringEntity temp; - temp.setContentEncoding (encodedString); - post.setEntity (temp); và sau đó thực hiện một DefaultHttpClient với bài viết cho đối số. –
Cảm ơn bạn đã trả lời! –
Hy vọng nó hoạt động ngay bây giờ! – Sourabh
URLEncoder
và URLDecoder
cả hai đều là ngoại lệ Throwable
và do đó phải được ít nhất bao bọc bởi khối try/catch. Tuy nhiên có một chút đơn giản hơn cách sử dụng litle android.net.Uri
:
Uri.decode(string);
Uri.encode(string);
Đó là phương pháp tĩnh, sử dụng utf-8, có sẵn từ API-1 và ném không phải ngoại lệ.
yêu thích cá nhân của tôi:
static String baseNameFromURL(URL url) {
String shortName;
String path = url.getPath();
String escaped = path.substring(path.lastIndexOf('/') + 1);
try {
shortName = URLDecoder.decode(escaped, "UTF-8");
} catch (UnsupportedEncodingException e) {
throw new Error(e.getMessage(), e);
}
int period = shortName.lastIndexOf('.');
return period > -1 ? shortName.substring(0, period) : shortName;
}
Trả về một chuỗi rỗng nếu URL không có một phần tên tập tin, như https://stackoverflow.com/
hoặc https://stackoverflow.com/questions/
. Nếu có dấu gạch chéo ngược trong phần tên tệp, nó được bảo toàn.
Bạn có thể loại bỏ hai dòng cuối cùng nếu bạn cần tên ngắn bằng tiện ích thay thế.
- 1. Lỗi giải mã trong java
- 2. Giải mã dữ liệu JSON trong Java
- 3. giải mã utf-8 trong java
- 4. Giải mã http chunked trong java?
- 5. giải mã shift-jis trong android
- 6. Mã hóa RSA .NET Giải mã Java
- 7. Mã hóa Java RSA - Giải mã .NET
- 8. mã hóa Triple DES và giải mã trong Java
- 9. mã hóa/giải mã dữ liệu giữa php/java cho android
- 10. android (thay đổi chuỗi trong mã java)
- 11. Giải mã base64 Chuỗi Java 5
- 12. Giải mã RSA trên Android - iPhone
- 13. Trình giải mã Java cho Ubuntu 10.04
- 14. Giải mã chuỗi Java BASE64 utf8
- 15. Trình giải mã Java cho netbeans
- 16. khối pad bị hỏng trong quá trình giải mã (Android)
- 17. Di chuyển mã giải mã Java sang Golang
- 18. Mã hóa PGP và giải mã với Java
- 19. Mã hóa AES với giải mã mở bằng java
- 20. Tương đương với mã hóa/giải mã Java Triple DES
- 21. Giải mã chuỗi truy vấn URI trong Java
- 22. URL và nhân vật đặc biệt giải mã trong Java
- 23. API Java để mã hóa/giải mã các tệp pdf
- 24. Giải mã một phần của Bitmap từ tệp trong Android
- 25. Giải mã các thực thể HTML trong android
- 26. Ai đó có thể Giải thích mã java này
- 27. Giải mã biểu tượng Bảng mã được mã hóa trong java
- 28. Mã hóa và giải mã đối tượng bitmap trong chuỗi base64 trong Android
- 29. Mã hóa AES trong iOS và Android và giải mã trong C# .NET
- 30. Mã hóa AES trong CryptoJS và giải mã trong Coldfusion
Vì vậy, tôi phải viết như sau: mã hóa ("hello", "x-www-form-urlencoded") hoặc cho "x-www-form-urlencoded", nó mã hóa ("hello", "UTF-8 ")? –
Bạn phải viết mã hóa ("hello", "UTF-8"). x-www-form-urlencoded luôn là loại kết quả. Tham số mã hóa đề cập đến dữ liệu đầu vào của bạn. – jgre
Cảm ơn bạn đã trả lời! –