1

このテキストをメールで送信したい

Destination : 6W - ATLANTA WEST!@#$%^*!gemini!@#$%^*!jfds!@#$%^*!,Trailer Number : 000564,,Drop empty trailer at Plant Numbe :546,Pick up trailer at Plant Number :45, Bill Date : 25-Jan-2013,Bill Time - Eastern Time : 1,Trip Number :456,MBOL :546,Carrier :Covenant!@#$%^*!test@shaw.com!@#$%^*!transport@shaw.com!@#$%^*!test@transport.com!@#$%^*!antoalphi@gmail.com,Destination : 6W - ATLANTA WEST!@#$%^*!gemini!@#$%^*!jfds!@#$%^*!,Customer Name : 567,Cusomer Delivery Address : 657567657,General Comments :657,Warehouse Comments : 65,Carrier Comments : ,Appointment Date :25-Jan-2013,Appointment Time : 1am,Rail Only :Standard,Total Weight : 45645

そして私はこのmailContent = URLDecoder.decode(Body, "UTF-8");デコードを使用しました、

しかし、それは私にこの例外を与えていますURLDecoder: Illegal hex characters in escape (%) pattern - For input string: "^*"

これを解決する方法を教えてください。メールの送信中にこれを取得します。

よろしくお願いします

4

2 に答える 2

2

URLDecoder.decode() の呼び出しを停止するだけで、エラーが発生しなくなります。渡す文字列値は URL エンコードされていません。

通常、エンコードなしでは電子メール メッセージでは許可されないコンテンツを含む電子メールを送信する場合は、さまざまな形式の MIME エンコードを検討する必要があります。参照が便利な場合があります。

  1. SMTP で許可されるもの: http://www.apps.ietf.org/rfc/rfc788.html
  2. 基本的な MIME エンコーディング: http://www.apps.ietf.org/rfc/rfc1341.html
  3. Java MIME サポート: http://docs.oracle.com/javaee/1.4/api/javax/mail/internet/MimeUtility.html

たとえば、次のことを試してみてください。

String sendable = MimeUtility.encodeText(body,"UTF-8","BASE64")
于 2013-01-16T16:48:28.127 に答える
2

そもそも URL エンコードされていないものを URL デコードしようとしています。体はそのままで何が悪いの?つまり、次のように使用するとどうなりますか。

mailContent = Body

(URL エンコーディングでは、% 文字は、問題を引き起こす可能性のある文字をエンコードするために 2 つの 16 進数と共に使用されます。たとえば、その ASCII コードは 47 (10 進数) または 2F (16 進数) であるため、 としてエンコードされます。本文で/は、 16 進数ではない 2 文字 - これが、URL エンコードされていないことと、デコーダがエラーを起こしている理由であることがわかります。)%2F%

于 2013-01-16T16:39:50.410 に答える