44'use strict' ; 
55
66import  {  Dict ,  Str  }  from  './common.js' ; 
7- import  {  requireIso88592 ,   requireMimeBuilder ,  requireMimeParser  }  from  '../platform/require.js' ; 
7+ import  {  requireMimeBuilder ,  requireMimeParser  }  from  '../platform/require.js' ; 
88
99import  {  Attachment  }  from  './attachment.js' ; 
1010import  {  Buf  }  from  './buf.js' ; 
@@ -18,7 +18,6 @@ import { iso2022jpToUtf } from '../platform/util.js';
1818/* eslint-disable @typescript-eslint/naming-convention */ 
1919const  MimeParser  =  requireMimeParser ( ) ; 
2020const  MimeBuilder  =  requireMimeBuilder ( ) ; 
21- const  Iso88592  =  requireIso88592 ( ) ; 
2221/* eslint-enable @typescript-eslint/naming-convention */ 
2322
2423type  AddressHeader  =  {  address : string ;  name : string  } ; 
@@ -480,9 +479,12 @@ export class Mime {
480479  } 
481480
482481  private  static  getNodeContentAsUtfStr ( node : MimeParserNode ) : string  { 
483-     if  ( node . charset  &&  Iso88592 . labels . includes ( node . charset ) )  { 
484-       // eslint-disable-next-line @typescript-eslint/no-non-null-assertion 
485-       return  Iso88592 . decode ( node . rawContent ! ) ; 
482+     // List of charset labels that map to ISO-8859-2 
483+     const  iso88592Labels  =  [ 'csisolatin2' ,  'iso-8859-2' ,  'iso-ir-101' ,  'iso8859-2' ,  'iso88592' ,  'iso_8859-2' ,  'iso_8859-2:1987' ,  'l2' ,  'latin2' ] ; 
484+     
485+     if  ( node . charset  &&  node . rawContent  &&  iso88592Labels . includes ( node . charset . toLowerCase ( ) ) )  { 
486+       const  decoder  =  new  TextDecoder ( 'iso-8859-2' ) ; 
487+       return  decoder . decode ( Buf . fromRawBytesStr ( node . rawContent ) ) ; 
486488    } 
487489    let  resultBuf : Buf ; 
488490    if  ( node . charset  ===  'utf-8'  &&  node . contentTransferEncoding . value  ===  'base64' )  { 
0 commit comments