Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/07/2015, 12:26
rujixa9
 
Fecha de Ingreso: julio-2015
Mensajes: 1
Antigüedad: 8 años, 9 meses
Puntos: 0
[Problema] Api Rest Slim y JSON

Hola, antes de nada muchas gracias a todos y a este foro que me ha ayudado mucho.
Tengo el siguiente problema:

Estoy haciendo un pequeño proyecto con la API REST Slim, hasta aquí todo bien. El problema viene cuando muestro los datos de la base de datos recogidos mediante esta API, mediante la función json_encode(), la cual me los muestra así:

En vez de mostrarme "Geografía", me muestra "Geograf\u00eda".


La codificación está en utf-8 tanto en la base de datos, como en el header() de php.
He probado con la función array_map('htmlentities', $array), también con utf8_encode, etc y solo consigo empeorarlo.

Os pongo el código de la conexión con la base de datos mediante PDO:
Código:
  
require 'vendor/autoload.php';

$app = new \Slim\Slim();

$app ->config(array(
    
    'debug' => true,
    'templates.path' => 'views'
));

$app->contentType('text/html; charset=utf-8'); 

$db = new PDO('mysql:host=localhost;dbname=pruebas;charset=utf8','user1','1234');

$db->exec("set names utf8");
y el código a la hora de obtener los datos:

Código:
$app->get($rutaApi . '/prueba', function() use ($app, $db){
    

    
    $query = $db -> prepare("SELECT *  FROM table_pruebas");
    $query->execute();
    
    

    $count = $query->rowCount();
    
    
    $data['usuarios'] = $query->fetchAll(PDO::FETCH_ASSOC);

    $data['count'] = $count;

    $app->render('pruebas.php', $data);

    
});
y por último el código de la página pruebas.php:

Código:
<?php


  $jsondata = array();

    if($count > 0){
    
      $jsondata["Success"] = true;
 

    }else{
      
        $jsondata["Success"] = false;
 

    }

    $jsondata["Result"]["ItemCount"] = $count;


    foreach ($usuarios as $key => $value) {
      
       $jsondata["Result"]["Items"][] = $value;
     }
 
 
 
  header('Content-type: application/json; charset=utf-8');


     $json = json_encode($jsondata, JSON_PRETTY_PRINT);
     echo $json;
     


exit();

?>
A ver si alguien puede echarme una mano.

Muchas gracias y un saludo.