diff options
author | Kartikaya Gupta <kgupta@mozilla.com> | 2016-06-18 11:17:19 +0100 |
---|---|---|
committer | Kartikaya Gupta <kgupta@mozilla.com> | 2016-06-18 11:17:19 +0100 |
commit | 653c5ab82baf400e798513f34779e7a2a0448bb8 (patch) | |
tree | de90b54cef922b712c5e5faf4dd4bf4a352c37bb /src/lib.rs | |
parent | 5595a17a39949253118b8d9f11ab68091892a0c7 (diff) |
Default unknown body charsets to ASCII
Diffstat (limited to 'src/lib.rs')
-rw-r--r-- | src/lib.rs | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -417,8 +417,7 @@ impl<'a> ParsedMail<'a> { "quoted-printable" => try!(quoted_printable::decode(self.body, quoted_printable::ParseMode::Robust)), _ => Vec::<u8>::from(self.body), }; - let charset_conv = try!(encoding::label::encoding_from_whatwg_label(&self.ctype.charset) - .ok_or(MailParseError::Generic("Unknown charset found", 0))); + let charset_conv = encoding::label::encoding_from_whatwg_label(&self.ctype.charset).unwrap_or(encoding::all::ASCII); let str_body = try!(charset_conv.decode(&decoded, encoding::DecoderTrap::Replace).map_err(|_| { MailParseError::Generic("Unable to convert transfer-decoded bytes from specified charset", 0) })); @@ -687,5 +686,8 @@ mod tests { let mail = parse_mail(b"Content-Transfer-Encoding: base64\r\n\r\naGVsbG 8gd\r\n29ybGQ=").unwrap(); assert_eq!(mail.get_body().unwrap(), "hello world"); + + let mail = parse_mail(b"Content-Type: text/plain; charset=x-unknown\r\n\r\nhello world").unwrap(); + assert_eq!(mail.get_body().unwrap(), "hello world"); } } |