【发布时间】:2012-01-09 04:34:43
【问题描述】:
我们已经实现了一个 HTTP 身份验证连接,用 C# 编码,使用 Uri.EscapeDataString()。
我正在尝试制作一个与 C# 版本完全相同的 Java 测试应用程序,但 URLEncoder.encode(string, "UTF-8") 添加了与 C# Uri.EscapeDataString() 函数不完全相同的额外编码。
等效的编码方式是什么?
【问题讨论】:
我们已经实现了一个 HTTP 身份验证连接,用 C# 编码,使用 Uri.EscapeDataString()。
我正在尝试制作一个与 C# 版本完全相同的 Java 测试应用程序,但 URLEncoder.encode(string, "UTF-8") 添加了与 C# Uri.EscapeDataString() 函数不完全相同的额外编码。
等效的编码方式是什么?
【问题讨论】:
我发现最好的方法是使用URL.toURI().toString() 组合:
String uriEncodeVariable = "https://localhost:443";
URL tempURL = new URL(uriEncodeVariable);
String uriResult = tempURL.toURI().toString();
【讨论】:
我对 C# 不是很流利,但看起来您需要类似 URLEncoder 的东西?让我们看看 SO 213506 (http://stackoverflow.com/questions/213506/java-net-urlencoder-encodestring-is-deprecated-what-should-i-use-instead)?
【讨论】: