It appears that some characters are not within ISO Latin 1, so the problem might not be so easily solved. You may need to know which character set/locale they are coming from, there could be some overlap. You might like to take a look at
perllocale.
IBM mainframe has a different EBCDIC codeset for each European language, so it is not impossible to retain the correct characters, provided you know which charset they come from.