@@ -2030,7 +2030,7 @@ pub mod attachments {
20302030pub mod encodings {
20312031 //! Email encodings (quoted printable, `MIME`).
20322032 use data_encoding:: BASE64_MIME ;
2033- use encoding :: { all :: * , DecoderTrap , Encoding } ;
2033+ use encoding_rs :: * ;
20342034
20352035 use super :: * ;
20362036 use crate :: email:: attachment_types:: Charset ;
@@ -2166,38 +2166,31 @@ pub mod encodings {
21662166 pub fn decode_charset ( s : & [ u8 ] , charset : Charset ) -> Result < String > {
21672167 match charset {
21682168 Charset :: UTF8 | Charset :: Ascii => Ok ( String :: from_utf8_lossy ( s) . to_string ( ) ) ,
2169- Charset :: ISO8859_1 => Ok ( ISO_8859_1 . decode ( s, DecoderTrap :: Strict ) ?) ,
2170- Charset :: ISO8859_2 => Ok ( ISO_8859_2 . decode ( s, DecoderTrap :: Strict ) ?) ,
2171- Charset :: ISO8859_3 => Ok ( ISO_8859_3 . decode ( s, DecoderTrap :: Strict ) ?) ,
2172- Charset :: ISO8859_4 => Ok ( ISO_8859_4 . decode ( s, DecoderTrap :: Strict ) ?) ,
2173- Charset :: ISO8859_5 => Ok ( ISO_8859_5 . decode ( s, DecoderTrap :: Strict ) ?) ,
2174- Charset :: ISO8859_6 => Ok ( ISO_8859_6 . decode ( s, DecoderTrap :: Strict ) ?) ,
2175- Charset :: ISO8859_7 => Ok ( ISO_8859_7 . decode ( s, DecoderTrap :: Strict ) ?) ,
2176- Charset :: ISO8859_8 => Ok ( ISO_8859_8 . decode ( s, DecoderTrap :: Strict ) ?) ,
2177- Charset :: ISO8859_10 => Ok ( ISO_8859_10 . decode ( s, DecoderTrap :: Strict ) ?) ,
2178- Charset :: ISO8859_13 => Ok ( ISO_8859_13 . decode ( s, DecoderTrap :: Strict ) ?) ,
2179- Charset :: ISO8859_14 => Ok ( ISO_8859_14 . decode ( s, DecoderTrap :: Strict ) ?) ,
2180- Charset :: ISO8859_15 => Ok ( ISO_8859_15 . decode ( s, DecoderTrap :: Strict ) ?) ,
2181- Charset :: ISO8859_16 => Ok ( ISO_8859_16 . decode ( s, DecoderTrap :: Strict ) ?) ,
2182- Charset :: GBK => Ok ( GBK . decode ( s, DecoderTrap :: Strict ) ?) ,
2183- Charset :: Windows1250 => Ok ( WINDOWS_1250 . decode ( s, DecoderTrap :: Strict ) ?) ,
2184- Charset :: Windows1251 => Ok ( WINDOWS_1251 . decode ( s, DecoderTrap :: Strict ) ?) ,
2185- Charset :: Windows1252 => Ok ( WINDOWS_1252 . decode ( s, DecoderTrap :: Strict ) ?) ,
2186- Charset :: Windows1253 => Ok ( WINDOWS_1253 . decode ( s, DecoderTrap :: Strict ) ?) ,
2187- Charset :: KOI8R => Ok ( KOI8_R . decode ( s, DecoderTrap :: Strict ) ?) ,
2188- Charset :: KOI8U => Ok ( KOI8_U . decode ( s, DecoderTrap :: Strict ) ?) ,
2189- Charset :: BIG5 => Ok ( BIG5_2003 . decode ( s, DecoderTrap :: Strict ) ?) ,
2190- Charset :: GB2312 => {
2191- Ok ( encoding:: codec:: simpchinese:: GBK_ENCODING . decode ( s, DecoderTrap :: Strict ) ?)
2192- }
2193- Charset :: GB18030 => Ok (
2194- encoding:: codec:: simpchinese:: GB18030_ENCODING . decode ( s, DecoderTrap :: Strict ) ?
2195- ) ,
2196- Charset :: UTF16 => {
2197- Ok ( encoding:: codec:: utf_16:: UTF_16LE_ENCODING . decode ( s, DecoderTrap :: Strict ) ?)
2198- }
2199- Charset :: ISO2022JP => Ok ( ISO_2022_JP . decode ( s, DecoderTrap :: Strict ) ?) ,
2200- Charset :: EUCJP => Ok ( EUC_JP . decode ( s, DecoderTrap :: Strict ) ?) ,
2169+ Charset :: ISO8859_2 => Ok ( ISO_8859_2 . decode ( s) . 0 . to_string ( ) ) ,
2170+ Charset :: ISO8859_3 => Ok ( ISO_8859_3 . decode ( s) . 0 . to_string ( ) ) ,
2171+ Charset :: ISO8859_4 => Ok ( ISO_8859_4 . decode ( s) . 0 . to_string ( ) ) ,
2172+ Charset :: ISO8859_5 => Ok ( ISO_8859_5 . decode ( s) . 0 . to_string ( ) ) ,
2173+ Charset :: ISO8859_6 => Ok ( ISO_8859_6 . decode ( s) . 0 . to_string ( ) ) ,
2174+ Charset :: ISO8859_7 => Ok ( ISO_8859_7 . decode ( s) . 0 . to_string ( ) ) ,
2175+ Charset :: ISO8859_8 => Ok ( ISO_8859_8 . decode ( s) . 0 . to_string ( ) ) ,
2176+ Charset :: ISO8859_10 => Ok ( ISO_8859_10 . decode ( s) . 0 . to_string ( ) ) ,
2177+ Charset :: ISO8859_13 => Ok ( ISO_8859_13 . decode ( s) . 0 . to_string ( ) ) ,
2178+ Charset :: ISO8859_14 => Ok ( ISO_8859_14 . decode ( s) . 0 . to_string ( ) ) ,
2179+ Charset :: ISO8859_15 => Ok ( ISO_8859_15 . decode ( s) . 0 . to_string ( ) ) ,
2180+ Charset :: ISO8859_16 => Ok ( ISO_8859_16 . decode ( s) . 0 . to_string ( ) ) ,
2181+ Charset :: GBK => Ok ( GBK . decode ( s) . 0 . to_string ( ) ) ,
2182+ Charset :: Windows1250 => Ok ( WINDOWS_1250 . decode ( s) . 0 . to_string ( ) ) ,
2183+ Charset :: Windows1251 => Ok ( WINDOWS_1251 . decode ( s) . 0 . to_string ( ) ) ,
2184+ Charset :: ISO8859_1 | Charset :: Windows1252 => Ok ( WINDOWS_1252 . decode ( s) . 0 . to_string ( ) ) ,
2185+ Charset :: Windows1253 => Ok ( WINDOWS_1253 . decode ( s) . 0 . to_string ( ) ) ,
2186+ Charset :: KOI8R => Ok ( KOI8_R . decode ( s) . 0 . to_string ( ) ) ,
2187+ Charset :: KOI8U => Ok ( KOI8_U . decode ( s) . 0 . to_string ( ) ) ,
2188+ Charset :: BIG5 => Ok ( BIG5 . decode ( s) . 0 . to_string ( ) ) ,
2189+ Charset :: GB2312 => Ok ( GBK . decode ( s) . 0 . to_string ( ) ) ,
2190+ Charset :: GB18030 => Ok ( GB18030 . decode ( s) . 0 . to_string ( ) ) ,
2191+ Charset :: UTF16 => Ok ( UTF_16LE . decode ( s) . 0 . to_string ( ) ) ,
2192+ Charset :: ISO2022JP => Ok ( ISO_2022_JP . decode ( s) . 0 . to_string ( ) ) ,
2193+ Charset :: EUCJP => Ok ( EUC_JP . decode ( s) . 0 . to_string ( ) ) ,
22012194 }
22022195 }
22032196
0 commit comments