如何在Groovy中编码URL?

如何在Groovy中编码URL?,groovy,urlencode,url-encoding,Groovy,Urlencode,Url Encoding,Groovy中有一种URLEncode吗 我找不到任何字符串→ 字符串URL编码实用程序 示例:脱氢酶(NADP+)→ 脱氢酶%20(NADP%2b) (+而不是%20也是可以接受的,因为实现是这样做的)您可以使用java.net.URLEncoder 在上面的示例中,括号也必须进行编码: def toEncode = "dehydrogenase (NADP+)" assert java.net.URLEncoder.encode(toEncode, "UTF-8") == "dehydrog

Groovy中有一种URLEncode吗

我找不到任何字符串→ 字符串URL编码实用程序

示例:
脱氢酶(NADP+)
→ <代码>脱氢酶%20(NADP%2b)


+
而不是
%20
也是可以接受的,因为实现是这样做的)

您可以使用
java.net.URLEncoder

在上面的示例中,括号也必须进行编码:

def toEncode = "dehydrogenase (NADP+)"
assert java.net.URLEncoder.encode(toEncode, "UTF-8") == "dehydrogenase+%28NADP%2B%29"
您还可以向string的元类添加一个方法:

String.metaClass.encodeURL = {
   java.net.URLEncoder.encode(delegate, "UTF-8")
}
和对任何字符串的简单调用
encodeURL()

def toEncode = "dehydrogenase (NADP+)"
assert toEncode.encodeURL() == "dehydrogenase+%28NADP%2B%29"  

urlcoder.encode(toEncode)
不推荐使用。RFC 3986不建议使用默认编码。最好使用
URLEncoder.encode(toEncode,“UTF-8”)
这个函数还不是GDK URL类的一部分,这让人很遗憾。由于某种原因,那个元类版本对我来说不起作用。因为我在Gradle构建脚本中试过了?