2011-11-29 9 views
6

Chúng tôi đã triển khai kết nối xác thực HTTP, được mã hóa trong C# với Uri.EscapeDataString().C# Uri.EscapeDatastring() tương đương với Java

Tôi đang cố gắng tạo một ứng dụng thử nghiệm java giống hệt như phiên bản C#, nhưng URLEncoder.encode(string, "UTF-8") thêm mã hóa bổ sung không hoàn toàn giống với hàm C# Uri.EscapeDataString().

Phương pháp mã hóa tương đương là gì?

Trả lời

2

Cách tốt nhất mà tôi đã tìm thấy để làm điều này là sử dụng kết hợp URL.toURI().toString():

String uriEncodeVariable = "https://localhost:443"; 
URL tempURL = new URL(uriEncodeVariable); 
String uriResult = tempURL.toURI().toString(); 
-1

Tôi không thành thạo về C# nhưng có vẻ như bạn cần một cái gì đó như URLEncoder? Hãy xem xét SO 213506 (http://stackoverflow.com/questions/213506/java-net-urlencoder-encodestring-is-deprecated-what-should-i-use-instead)?

+0

Như đã nói trong câu hỏi, sử dụng URLEncoder.encode không sản xuất cùng một loại chuỗi được mã hóa. –

+0

Xin lỗi vì tôi đã hoàn toàn không tỉnh táo khi tôi đọc văn bản của bạn! –

0

Hãy xem Apache StringScapeUtils, chắc chắn một trong các phương pháp trong lớp đó sẽ hữu ích.

+0

Thật không may, chúng chỉ cung cấp các cách để thoát chuỗi tiêu chuẩn ở một số định dạng nhất định, chúng không thực sự mã hóa cách 'Uri.EscapeDataString()' thực hiện. –