GMail 将 link 参数转换为错误格式

GMail converts link parameters to wrong format

我在 java 中创建了一个函数,它向用户发送一封带有 link 的 HTML 电子邮件。
它适用于除 GMail 之外的所有电子邮件客户端。
单击时,GMail 通过 Google 重定向 link 并重新格式化 link 参数,如下所示:

原始Link
https://www.mylink.com/page.html?id=0&role=admin



格式化Link
https://www.google.com/url?q=https://www.mylink.com/page.html?id%3D0%26role%3Dadmin

如您所见,url 参数的格式很奇怪,因此我无法使用 java 脚本函数从 url 中获取这些参数。
有什么办法可以防止这种情况发生吗?

提前感谢您的帮助。

您看到的 url 已编码,在 Java 中您可以使用 URLDecoder.decode:

获得未编码的 URL
String url = "https://www.google.com/url?q=https://www.mylink.com/page.html?id%3D0%26role%3Dadmin";
System.out.println(URLDecoder.decode(url, "UTF-8"));

这会打印:

https://www.google.com/url?q=https://www.mylink.com/page.html?id=0&role=admin

Java脚本也有这个功能,叫做decodeURI().