Ver Mensaje Individual
  #5 (permalink)  
Antiguo 02/05/2012, 04:25
dpbataller
 
Fecha de Ingreso: agosto-2009
Mensajes: 134
Antigüedad: 14 años, 8 meses
Puntos: 3
Respuesta: Codificación acentos Json y PHP

Hola de nuevo. He cambiado el código y la base de datos.
Os vuelvo a exponer la situacion:

Formulario para insertar registros en HTML:


Código HTML:
Ver original
  1. <!DOCTYPE html>
  2.  
  3. <html lang="es">
  4.  
  5.     <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
  6. </head>
  7.  
  8.  
  9.  
  10.     <form id="formulario" name="formulario" method="post" action="insertar_persona.php" enctype="multipart/form-data"> 
  11.         <p>Nombre:</p>
  12.         <input type="text" name="nombre" value="nombre" />     
  13.         <br/><br/>
  14.         <input type="submit" id="insertar" name="insertar" value="Insertar"/>
  15.    
  16.     </form>
  17.    
  18. </body>
  19.  
  20. </html>

Código PHP para realizar la inserción de los registros


Código PHP:
Ver original
  1. <?php
  2. header ('Content-type: text/html; charset=utf-8');
  3. //Credenciales de la BBDD
  4. $db = "prueba";
  5. $host = 'localhost';
  6. $username = "dpbataller";
  7. $password = '1234';
  8.  
  9. //Conectamos al servidor de la Base de datos
  10. $link = mysql_connect($host,$username,$password) or die("No se puede conectar");
  11. //Seleccionamos la BBDD
  12. @mysql_select_db($db) or die ("No se ha podido seleccionar a la base de datos");
  13.  
  14. //Lanzamos la consulta
  15. $consulta = mysql_query("INSERT INTO personas (id,nombre) VALUES ('','$_POST[nombre]')");
  16.  
  17. ?>


Código PHP para devolver los registros en formato Json

Código PHP:
Ver original
  1. <?php
  2. header ('Content-type: text/html; charset=utf-8');
  3. //Credenciales de la BBDD
  4. $db = "prueba";
  5. $host = 'localhost';
  6. $username = "dpbataller";
  7. $password = '1234';
  8.  
  9. //Conectamos al servidor de la Base de datos
  10. $link = mysql_connect($host,$username,$password) or die("No se puede conectar");
  11. //Seleccionamos la BBDD
  12. mysql_select_db($db) or die ("No se ha podido seleccionar a la base de datos");
  13.  
  14. //Lanzamos la consulta
  15. $consulta = mysql_query("SELECT id,nombre from personas");
  16. //Creamos un array para almacenar los resultados
  17. $filas = array();
  18.  
  19. //Agregamos las filas devueltas al array
  20. while ($r = mysql_fetch_assoc($consulta)) {
  21.    
  22.     $filas[] = $r; 
  23.    
  24. }
  25. //Devolvemos el resultado
  26. echo json_encode($filas);
  27.  
  28. ?>

La situación es la siguiente, inserto nombres con acentos, por ejemplo, José.
Voy a la BD y miro que se ha guardado José, y el archivo Json me devuelte
Código Javascript:
Ver original
  1. [{"id":"1","nombre":"Jos\u00c3\u00a9"}

Tanto la BD cómo las tablas tienen la codificación utf8_spanish2_ci

¿Qué está pasando? me vuelvo loco..