Problema encoding de arquivo

Galera é o seguinte to quebrando a cabeça literalmente tentando resolver esse problema encoding. Estou tentando usar um método para lêr os arquivos
e inserir os registros no banco entretanto os caracteres especias não aparecem no banco de dados aparecem com uma interrogação eu coloquei o banco
com encoding utf8 no postgresql mas ainda sim ele não funciona. Já usei FileRender e agora estou tentando usar com FileOutPutStream mas sem sucesso
o FileRender até funciona normal quando rodo minha aplicação localmente mas quando a ospedo no servidor linux ele começa a truncar os caracteres
por isso passei a usar FileOutPutStream que me permite determinar o encoding de leitura. Agradeço muito a ajuda galera já pesquisei muito mais sem
sucesso acredito que seja alguma particularidade que não sei lembrando o servido que eu hospedo a aplicação fica nos USA e não sei se têm diferença
do utf-8 de lá pra o de cá segue o método.

Método de leitura do arquivo CVS

ocultei a parte de montagem do objeto e de inserção no banco de dados pq não achei necessário …devido o problema estar na leitura do arquivo.

[code]

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

	String caminhoSever = diretorio + "/" + fileName;

	FileInputStream tr = new FileInputStream(caminhoSever);

	InputStreamReader intsTR= new InputStreamReader(tr,"UTF-8");
	
	BufferedReader brB=new BufferedReader(intsTR);
	
	// Guarda a linha do arquivo
	String linha;

	String informacao = "";

	ArrayList<Aluno> alunos = new ArrayList<Aluno>();
	ArrayList<Aluno> alunosSalva = new ArrayList<Aluno>();
	ArrayList<Aluno> alunosMatDuplicados = new ArrayList<Aluno>();

	@SuppressWarnings("unused")
	long matricula = 0;

	boolean acheiPrimeiroCampo = false;

	boolean erroConversao = false;

	boolean salva = true;
	boolean salvaD = false;

	char caractere;
	
	// Varre todas as linhas que possuem informação
	while ((linha = brB.readLine()) != null) {
		
		System.out.println(linha);

		linha = linha + ';';
		salva = true;
		salvaD = false;
		acheiPrimeiroCampo = false;
		erroConversao = false;
		Aluno aluno = new Aluno();
		Turma turma = new Turma();
		matricula = 0;

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

			caractere = linha.charAt(i);
			
			if (!erroConversao) {

				if (caractere != ';') {

					informacao += caractere;

	} 

}[/code]

Você tá lendo como UTF-8 na sua aplicação, certo…
Mas na hora de salvar, tá enviando os dados como UTF-8 (que é o que o banco está esperando receber)?

cara estou só lendo as linhas do objeto quando moto a informação eu pego essa informação e dou um aluno.setNome(informa); que eu peguei daquela linha
eu não digo nada antes de inserir não. Não sei como fazer isso eu preciso dizer antes de inserir no banco de dados com hibernate que as strings dentro daquele
objeto estão em utf8.