我想发送一封电子邮件
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: "^*"
最好的问候
答案 0 :(得分:2)
您正尝试对首先未进行URL编码的内容进行URL解码。这个身体有什么问题?换句话说,如果您只使用以下内容会发生什么:
mailContent = Body
(在URL编码中,%字符与两个十六进制数字一起用于编码可能导致问题的字符,例如/
将被编码为%2F
,因为其ASCII码为47(十进制) )或2F(十六进制)。在你的身体中,%
之后是两个不是十六进制数字的字符 - 这就是我怎么说它没有被URL编码,以及解码器出错的原因。)
答案 1 :(得分:2)
只需停止调用URLDecoder.decode(),您就会停止收到错误!您传递给它的字符串值不是URL编码。
如果您发送的电子邮件的内容通常不允许在没有编码的电子邮件中发送,那么您可能需要考虑各种形式的MIME编码。引用可能很方便:
例如,您可以尝试:
String sendable = MimeUtility.encodeText(body,"UTF-8","BASE64")