Foros del Web » Programación para mayores de 30 ;) » Java »

Problema con Clase q me funciona en Windows pero no en Linux

Estas en el tema de Problema con Clase q me funciona en Windows pero no en Linux en el foro de Java en Foros del Web. Hola A Todos... Esta función me funciona perfectamente en Windows, pero cuando estoy trabajando a nivel de linux resulta q me esta cambiando cada vocal ...
  #1 (permalink)  
Antiguo 11/02/2005, 07:08
 
Fecha de Ingreso: agosto-2004
Mensajes: 24
Antigüedad: 19 años, 8 meses
Puntos: 0
Problema con Clase q me funciona en Windows pero no en Linux

Hola A Todos...

Esta función me funciona perfectamente en Windows, pero cuando estoy trabajando a nivel de linux resulta q me esta cambiando cada vocal acentuada por un signo de interrogación, cuando mando a escribir la variable str. Alguien tiene alguna idea de lo que está pasando o tengo q hacer alguna configuración en el servidor Tomcat en Unix

Código PHP:
public StringBuffer Bufferhtml() throws java.io.FileNotFoundExceptionjava.io.IOException  {
   
FileReader entrada = new FileReader("direccion_file");
   
StringBuffer str = new StringBuffer(900000);
   
int c;
   while((
entrada.read())!=-1){
       
str.append((char)c);
   }
     if(
entrada!=null){
        
entrada.close();
     }        
   return 
str;
}
// fin del public

__________________
Preguntando se llega a un buen SW :adios:
  #2 (permalink)  
Antiguo 11/02/2005, 07:35
 
Fecha de Ingreso: julio-2004
Ubicación: Madrid
Mensajes: 40
Antigüedad: 19 años, 9 meses
Puntos: 0
Si no es un problema del UNIX o Windows sino del propio JAVA. Lo que pasa es que en uno estas grabando con el formatos ISO... (Que es el europeo) y por lo cual tiene acentos ñ y compañia. Y en el que te lo guarda mal seguramente este usando el UTF-8 la solución es:

Con este codigo abres el fichero en el formato que quieras, yo tuve el problema al reves, pero donde pone UTF-8 pon el "ISO-8859-1"

bfw = new BufferedWriter (new OutputStreamWriter(new FileOutputStream(_nombre),"UTF8") ); // Abrimos el fichero

La diferencia con tu codigo es que tendras que usar la variables BufferedWriter mira el API y pasa tu codigo de esta manera fuerzas desde java la codificación y no depende de la maquina virtual...

(Si no te funciona dale vueltas pues esta la solución te lo dice uno que se ha pegado muchas veces con esto).

Suerte.
  #3 (permalink)  
Antiguo 11/02/2005, 07:38
 
Fecha de Ingreso: julio-2004
Ubicación: Madrid
Mensajes: 40
Antigüedad: 19 años, 9 meses
Puntos: 0
Ops esto es para escribir tu problema es para leer (De todos modos el problema va por ahi).

Has editado los ficheros (Puede ser el problema en el fichero origen que no es el mismo).. Usa un editor hexadecimal (Ten encuanta los saltos de linea)

Saca por pantalla el c para ver quien es el que te cambia la codificación y fuerzale la codificación

suerte.
  #4 (permalink)  
Antiguo 11/02/2005, 09:10
 
Fecha de Ingreso: agosto-2004
Mensajes: 24
Antigüedad: 19 años, 8 meses
Puntos: 0
Tibu, gracias por la ayuda sin embargo, tengo varias observaciones:

1. El archivo q necesito leer es un html por lo que no puedo aplicarle un editor de texto, al no ser q lo pase de html a txt y ver si pasa lo mismo.. o q me puedes sugerir

2. Si aplico un BufferedWriter es en caso de escritura y lo q necesito hacer es una lectura, habrá alguna manera de utilizar el BufferedReader??? o algo similar para q no cambie los caracteres???..

Gracias 1000
__________________
Preguntando se llega a un buen SW :adios:
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:32.