Foro sobre Java SE > caracteres extraños en java
No creo que el problema esté en el JTextArea, sino en la carga del archivo.
¿Qué código usas para leer ese archivo?
En el test que sigue, se puede ver que acentos y tildes se ven perfectamente en un JTextArea.
public class Test extends javax.swing.JFrame {
private static final long serialVersionUID = 15_396_248_782_620_405L;
/** Creates new form Test */
public Test() {
initComponents();
jTextArea1.setLineWrap(true);
}
/** This method is called from within the constructor to
initialize the form.
WARNING: Do NOT modify this code. The content of this method is
always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
jTextArea1 = new javax.swing.JTextArea();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
getContentPane().setLayout(new java.awt.FlowLayout());
jTextArea1.setColumns(20);
jTextArea1.setRows(5);
jTextArea1.setText("Prueba con acentos y tiildes: \ncamión, cañón, agüero."); // NOI18N
jTextArea1.setWrapStyleWord(true);
jScrollPane1.setViewportView(jTextArea1);
getContentPane().add(jScrollPane1);
pack();
}// </editor-fold>
/**
@param args the command line arguments
*/
public static void main(String args[]) {
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new Test().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextArea jTextArea1;
// End of variables declaration
}
Si yo tambien creo que el problema es al cargar el archivo aca dejo el codigo, si alguien pudiera ayudarme con este problema, me seria de gran utilidad
File file;
JTextArea texto_codif = new JTextArea();
JFileChooser fc = new JFileChooser();
int opt = fc.showOpenDialog(this);
if (opt == JFileChooser.APPROVE_OPTION) {
file = fc.getSelectedFile();
System.out.println(file.getPath());
try {
BufferedReader r = new BufferedReader(new FileReader(file));
String text = "";
String aux;
while ((aux = r.readLine()) != null) {
text += aux + "\n";
}
texto_codif.setText(text);
} catch (FileNotFoundException ex) {
Logger.getLogger(Modulo_Codificacion.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(Modulo_Codificacion.class.getName()).log(Level.SEVERE, null, ex);
}
}
Prueba a usar un InputStreamReader con un Charset :
http://docs.oracle.com/javase/7/docs/api/java/io/InputStreamReader.html
http://docs.oracle.com/javase/7/docs/api/java/io/InputStreamReader.html#InputStreamReader(java.io.InputStream, java.nio.charset.Charset)
http://docs.oracle.com/javase/7/docs/api/java/nio/charset/Charset.html
Hola:
Todos los archivos de texto esta codificados de alguna forma.
existen varias: UTF-8, CP1252 ... y otras que no me acuerdo.
bueno el tema es que para que los caracteres aparezcan bien debes leer el archivo
utilizando la misma codificación con la que fue creado.
Esto no se puede hacer con FileReader, ya que a esta clase no se le puede
indicar la codificación que se usará para leer (utiliza la codificación por defecto del sistema),.
Por eso debieras cambiar la forma en que lees el archivo y utilizar una que permita especificar la codificación, entonces deberías reemplazar
new FileReader(file)
por
new InputStreamReader(new FileInputStream(file), <codificacion>)
tengo una duda, cuando cargo un archivo y lo muestro en jtextarea no me salen los caracteres extraños como por ejemplo las tildes, las ñ, etc si alguien pudiera ayudarme con este problema.