Tengo una base de datos con firebird con algunos campos tipo Blob. El problema es que al hacer una consulta sobre ese campo me devuelve bien los datos, pero no los caracteres extraños como acentos, eñes... que los sustituye por puntos.
Así tengo implementada la consulta para que lea los datos y me los devuelva codificados en un json (que posteriormente leeré con java):
try{
$str_conn="firebird:host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET;
$dbh = new PDO($str_conn, DB_USER, DB_PASSWORD);
}catch(PDOException $ex){
echo 'Error al conectar a la BBDD. '.$ex->getMessage();
die();
}
$res=$dbh->query("SELECT cast(DOSISADULTO as varchar(8191) character set utf8) AS DOSISADULTO FROM INSPECCIONES");
$datos = array();
foreach ($res as $row) {
$datos[] = $row;
}
echo json_encode($datos);
Pero esto me devuelve por salida:
No m.s de tres d.as // Esperado: No más de tres días
He probado otras codificaciones, como latin1, utfmb4... pero tampoco me termina de funcionar bien.
También he probado esta sentencia, pero nada.
$res=$dbh->query("select CONVERT(CAST(DOSISADULTO as BINARY) USING latin1) as DOSISADULTO from INSPECCIONES");
Seguramente me estoy perdiendo algún paso. ¿Algún consejo? Gracias.