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 などの 2 つの単語で、cromwell と road の間にスペースがあります。 . 現在、電子メールの本文にはスペースやその他の無効な文字を含めることができないため、無効な文字が入力されたことを示すエラー メッセージが表示されます。これを受け入れるようにするか、無効な文字を自動的に URL エンコーディングに変換するにはどうすればよいですか?

4

1 に答える 1

5

このサイトを見てください。本文の URL を自動的にエンコードする方法が説明されています。

Java で URL をエンコードする最良の方法

于 2012-07-12T09:25:23.330 に答える