Boa noite !
Estou pegando um texto rtf do banco e convertendo para html.
O problema é que a com a forma que eu encontrei para fazer essa conversão, estou com problemas de codificação que não sei resolver, pois as acentuações não estão vindo na conversão…
Se eu tiro o rtf do banco e uso o FileOutputStream pra gravar um arquivo rtf, ele vem todo certinho, porém na conversão… não vem a acentuação, no lugar vem caracteres estranhos, e eu apesar de estar lendo as api’s envolvidas nisso ae, não consegui encontrar onde posso configurar isso! Se puderem me ajudar, agradeço!
vai o código:
public void buscarTodos() throws FileNotFoundException,IOException{
conectar(ConFactory.Sqlite); // Ao buscar dados, conectar no firebird
ArrayList<Alternativas> resultados = new ArrayList<Alternativas>();
ResultSet rs;
Rtf rtf = new Rtf(); //classe que converte de rtf para html, inclusive peguei ela aqui num
//tópico do guj.
byte[] b = null;
try {
rs = comando.executeQuery("select DS_COMENT FROM pol012");
//while (rs.next()) {
rs.next();
b = rs.getBytes("DS_COMENT");
String html = new String(b,"UTF-8");
String convertida = rtf.convertTextRTF2HTML(html);
FileWriter fw = new FileWriter(new File("c:\\teste.html"));
BufferedWriter bw = new BufferedWriter(fw);
bw.write(convertida);
bw.flush();
bw.close();
//java.io.File file = new java.io.File("c:\\coment.rtf"); Comentei pq só usei pra teste de gravação do rtf
//FileOutputStream in = new FileOutputStream(file) ;
//in.write(b);
//in.close();
E a classe que eu uso pra converter
public class Rtf {
public String convertTextRTF2HTML(String text) {
if (text == null) {
return "";
}
StringReader reader = new StringReader(text);
StringWriter writer = new StringWriter();
RTFEditorKit rtfEditorKit = new RTFEditorKit();
HTMLEditorKit htmlEditorKit = new HTMLEditorKit();
Document doc = rtfEditorKit.createDefaultDocument();
try {
rtfEditorKit.read(reader, doc, 0);
htmlEditorKit.write(writer, doc, 0, doc.getLength());
} catch (IOException ex) {
//Logger.error("Erro na conversão de RTF2HTML.", ex);
} catch (BadLocationException ex) {
//logger.error("Erro na conversão de RTF2HTML.", ex);
}
return writer.toString();
}
}
Obrigado pela força ae!