tengo una aplicación, ejecutándose en Linux, desarrollada en Java y PHP, unidos mediante la librería JavaBridge, en la que (simplificando) PHP llama a un método de Java, el cual le devuelve una línea leída de fichero y mediante PHP la muestro por pantalla.
Al sacarla por pantalla, los caracteres acentuados leídos del fichero no se ven correctamente. En cambio, si el método java devuelve una cadena que no es leída de fichero, y también contiene caracteres acentuados, sí que los muestra.
Para mayor claridad:
Contenido fichero a leer:
Código:
Métodos java:Esto es una línea de fichero
Código:
Función PHPfunction leeLinea(){ String linea = ...; //lee línea de fichero "Esto es una línea de fichero" return linea; } function dameLinea(){ return "Línea no leída de fichero"; }
Código PHP:
$lector = new java("Lector");
$linea_fichero = $lector->leeLinea();
$linea_no_fichero = $lector->dameLinea();
// La línea siguiente muestra: 'Esto es una línea leída de fichero: Esto es una l�nea le�da de fichero'
echo "Esto es una línea leída de fichero: ".$linea_fichero ;
// La línea siguiente muestra: 'Esto es una línea no leída de fichero: Esto no es una línea leída de fichero'
echo "Esto es una línea no leída de fichero: ".$linea_no_fichero;
Resumiendo, si Java envía una cadena acentuada, se muestra bien por pantalla; si Java lee de fichero una cadena acentuada, no se muestra bien por pantalla.
¿Alguna idea?
Muchas gracias