0

我用java编写了一个代码,其中有表单(输入字段),最后是底部的发送电子邮件按钮。当用户单击按钮时,应提取输入字段中的数据,然后将其用作电子邮件正文的数据。

这是我的代码:

if (role.getValue().equals("1")) {          
    Desktop desktop = Desktop.getDesktop();
    String message = "mailto:username@domain.com?subject=Profildaten&body=" +
                     "Externe%20Referenz:%20" +
                     person.getExternalReference() + "%20" + "-%20" +
                     person.getExternalReferenceType() + "%0A" +
                     person.getTitle() + "%20" +
                     person.getContactLandline() + "%0A" +
                     "Mobil:%20" + person.getContactMobile() + "%0A" +
                     "Addresse:" + person.getContactStreet();

    URI uri = URI.create(message); 
    try {
        desktop.mail(uri);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }   
}

这一切都很完美,但唯一的问题是 Address: person.getContactStreet() 实际输入字段要求用户输入街道名称,通常是两个词,例如 Cromwell Road - 克伦威尔和道路之间有一个空格. 现在电子邮件的正文不允许有空格和其他无效字符,因此为什么它会弹出一条错误消息,指出输入了无效字符。我怎样才能让它接受这个或将无效字符自动转换为 url 编码?

4

1 回答 1

5

看看这个网站,它告诉你如何在正文中自动编码 URL。

在 Java 中编码 URL 的最佳方法

于 2012-07-12T09:25:23.330 回答