java - GMail 将链接参数转换为错误的格式

标签 java email gmail jakarta-mail

我用java编写了一个函数,它向用户发送一封带有链接的HTML电子邮件。
它在除 GMail 之外的所有电子邮件客户端中都能完美运行。
单击时,GMail 通过 Google 重定向链接并重新格式化链接参数,如下所示:

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



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

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

感谢您提前提供的帮助。

最佳答案

您看到的网址是经过编码的,在 Java 中您可以通过 URLDecoder.decode 获取未编码的网址:

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

Javascript也有这样做的函数,它叫做decodeURI() .

关于java - GMail 将链接参数转换为错误的格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53594012/

相关文章:

java - 在通配符类型 ArrayList 中添加元素

java - 在 Google App Engine 上使用 JavaMail 丢失电子邮件

email - 电子邮件标题 “name <email>”的格式是什么?

python - 连接重置错误: [WinError 10054] An existing connection was forcibly closed by the remote host (while accessing Gmail emails)

ios - 如何使用 gmail api 检测已读未读邮件?

java - 将字符串拆分为 3 部分并转换为 int

java - 导入的片段包是否包含在主机包类路径中?

java - 如何在java中使用informix unload语句?

email - Orchard cms 渲染形状作为电子邮件模板

email - 从 Google Script 发送电子邮件时消息被阻止