Creditos: joserobjr
Segue a lista:
O que está acontecendo é o seguinte, o java está usando o charset UTF-8 internamente e você está usando o charset ISO-8859-1 para salvar o arquivo com as mensagens, por isso quando o java lê o arquivo ele lê usando o decodificador UTF-8 ao invés do ISO-8859-1 e portanto as letras acentuadas aparecem diferentes.
Pode ser que esteja sendo ao contrário também, que o java esteja usando ISO-8859-1 e o arquivo UTF-8, mas é muito mais comum o cenário que falei acima.
Você pode resolver isso de 2 maneiras.
1ª Maneira:
1) Abrir o arquivo que tem as mensagens com o Notepad++ ou outro editor de texto inteligente
2) Clique em Formatar
3) Se estiver marcado "Codificação em UTF-8" marque "Converter para ANSI" (ANSI é compatível com ISO-8859-1)
mas se estiver marcado "Codificação em ANSI" ou nada, marque "Converter para UTF-8", recomendo usar a versão com BOM mas se tiver problemas use sem BOM.
4) Verifique se não tem nenhum caractere quebrado e salve o arquivo.
PRINT: http://prntscr.com/gto765
2ª Maneira:
Diga ao java qual o charset do arquivo de configuração usando o argumento charset, o FileReader sempre vai usar o charset padrão do sistema, então você teria que usar:
Código (Forge Crash):
new InputStreamReader( new FileInputStream( arquivo), "ISO-8859-1" );