Caractere Truncado

Galera eu estou tentando lêr um arquivo com extenção .csv e até consegui lêr o aquivo. O problema é que quando vou no banco de dados para verificar se todos os registros lidos
foram inseridos sem problemas os caracteres especiais ficam todo truncados e não sei como resolver isso me falaram que eu teria que usar um enconding utp-8 mas não sei como
ajustar isso têm algum método java q faça a conversão da string pra esse padão encoding algo do tipo. Agradeço desde já a ajuda.

Abaixo segue o trecho de código onde faço a leitura do arquivo simplifiquei o método pq ela ainda têm uma serié de validações.


private static ArrayList<String> lerArquivo(byte[] bytes, String fileName,
			String diretorio, Instituicao instituicao, String usuarioInclusao)
			throws Exception {

		String caminhoSever = diretorio + "/" + fileName;

		FileReader tr = new FileReader(caminhoSever);

		BufferedReader br = new BufferedReader(tr);

		// Guarda a linha do arquivo
		String linha;

		String informacao = "";

		char caractere;

		// Varre todas as linhas que possuem informação
		while ((linha = br.readLine()) != null) {

			linha = linha + ';';

			for (int i = 0; i < linha.length(); i++) {

				caractere = linha.charAt(i);


	                         if (caractere != ';') {

						informacao += caractere;

					} else {

						if (caractere == ';' && !acheiPrimeiroCampo) {

							acheiPrimeiroCampo = true;

                                                        System.out.println("informacao");


                                         }

procure sobre enconding e enconding com banco de dados.

procure no forum:

http://www.guj.com.br/java/11166-tudo-o-que-voce-precisa-saber-sobre-character-encoding
http://www.guj.com.br/java/217175-gravar-arquivo-usando-encoding-utf-8-no-java-com-filewriter

att,

vc sabe em qual codificação esta seu banco de dados??

não, meu banco de dados é postgreSQL.

o banco de dados está usando codificação utf-8.