use Rose::Object::MakeMethods::Generic
 (
-  scalar                  => [ qw(file_name transactions statistics) ],
+  scalar                  => [ qw(file_name transactions statistics charset) ],
   'scalar --get_set_init' => [ qw(bank_accounts) ],
 );
 
   $file->fh->print($::form->{file});
   $file->fh->close;
 
+  $self->charset($::form->{charset});
   $self->file_name($file->file_name);
   $self->parse_and_analyze_transactions;
 
   die "missing file for action import_mt940" unless $::form->{file_name};
 
   $self->file_name($::form->{file_name});
+  $self->charset($::form->{charset});
   $self->parse_and_analyze_transactions;
   $self->import_transactions;
 
 
   my $currency_id = SL::DB::Default->get->currency_id;
 
-  $self->transactions([ sort { $a->{transdate} cmp $b->{transdate} } SL::MT940->parse($self->file_name) ]);
+  $self->transactions([ sort { $a->{transdate} cmp $b->{transdate} } SL::MT940->parse($self->file_name, charset => $self->charset) ]);
 
   foreach my $transaction (@{ $self->transactions }) {
     $transaction->{bank_account}   = $self->bank_accounts->{ make_bank_account_idx($transaction->{local_bank_code}, $transaction->{local_account_number}) };
 
 }
 
 sub parse {
-  my ($class, $file_name) = @_;
+  my ($class, $file_name, %params) = @_;
 
   my ($local_bank_code, $local_account_number, %transaction, @transactions, @lines);
   my $line_number = 0;
   my ($active_field);
   foreach my $line (read_file($file_name)) {
     chomp $line;
-    $line = Encode::decode('UTF-8', $line);
+    $line = Encode::decode($params{charset} // 'UTF-8', $line);
     $line =~ s{\r+}{};
     $line_number++;
 
 
   'Import CSV'                  => 'CSV-Import',
   'Import Status'               => 'Import Status',
   'Import a Factur-X/ZUGFeRD file:' => 'Eine Factur-X-/ZUGFeRD-Datei importieren',
-  'Import a MT940 file:'        => 'Laden Sie eine MT940 Datei hoch:',
   'Import all'                  => 'Importiere Alle',
   'Import documents from #1'    => 'Importiere Dateien von Quelle \'#1\'',
   'Import file'                 => 'Import-Datei',
   'MAILED'                      => 'Gesendet',
   'MD'                          => 'PT',
   'MIME type'                   => 'MIME-Typ',
+  'MT940 file'                  => 'MT940-Datei',
   'MT940 import'                => 'MT940 Import',
   'MT940 import preview'        => 'MT940-Import-Vorschau',
   'MT940 import result'         => 'MT940-Import-Ergebnis',
 
 [% IF preview %]
   <form method="post" action="controller.pl" enctype="multipart/form-data" id="form">
     [% L.hidden_tag('file_name', SELF.file_name) %]
+    [% L.hidden_tag('charset', SELF.charset) %]
   </form>
 [% END %]
 
 
 
 <h1>[% FORM.title %]</h1>
 
-<p>
-  [% "Import a MT940 file:" | $T8 %]
-</p>
-
 <form method="post" action="controller.pl" enctype="multipart/form-data" id="form">
-  [% L.input_tag('file', '', type => 'file', accept => '*') %]
+  <table>
+    <tr>
+      <td>[% LxERP.t8("Charset") %]:</td>
+      <td>[% L.select_tag('charset', [ [ 'ISO-8859-15', 'ISO-8859-15 (Latin 1)' ], [ 'UTF-8', 'UTF-8' ], [ 'Windows-1252', 'Windows-1252' ] ], default='UTF-8') %]</td>
+    </tr>
+
+    <tr>
+      <td>[% LxERP.t8("MT940 file") %]:</td>
+      <td>[% L.input_tag('file', '', type => 'file', accept => '*') %]</td>
+    </tr>
+  </table>
 </form>