我用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 编码?