2011-11-29 92 views
6

我們實現了一個HTTP身份驗證連接,使用C#編碼並使用Uri.EscapeDataString()C#Uri.EscapeDatastring()等效於Java

我試圖做一個完全相同的事情作爲C#版本相同的Java測試應用程序,但URLEncoder.encode(string, "UTF-8")添加額外的編碼是不完全相同的C#Uri.EscapeDataString()函數。

什麼是等效編碼方法?

回答

2

我發現要做到這一點,最好的辦法是使用URL.toURI().toString()組合:

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

我不是很流利的C#,但它看起來像你需要像URLEncoder的東西?讓我們來看看SO 213506(http://stackoverflow.com/questions/213506/java-net-urlencoder-encodestring-is-deprecated-what-should-i-use-teady)?

+0

正如提問時說,使用URLEncoder.encode不會產生相同類型的編碼字符串。 –

+0

哇,對不起,當我閱讀你的文本時,我顯然不完全清醒! –

0

看看Apache的StringScapeUtils,那個類的方法當然是有用的。

+0

不幸的是,這些只提供了某些格式的標準轉義字符串的方式,它們並不真正以'Uri.EscapeDataString()'的方式進行編碼。 –