2011-11-29 170 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()'的方式进行编码。 –