Foros del Web » Programando para Internet » PHP »

Problema con json_encode() con caracteres especiales

Estas en el tema de Problema con json_encode() con caracteres especiales en el foro de PHP en Foros del Web. Tengo un problemilla con json_encode() al incluirle un array que tenga datos con tildes y eñes $array=("nombre"=>"Canzión", "edad"=>"10 años"); echo json_encode($array); {"nombre":"Canzi", "edad":"10 a"} como ...
  #1 (permalink)  
Antiguo 21/01/2009, 10:35
Avatar de gersveo  
Fecha de Ingreso: julio-2008
Mensajes: 145
Antigüedad: 15 años, 9 meses
Puntos: 5
Problema con json_encode() con caracteres especiales

Tengo un problemilla con json_encode() al incluirle un array que tenga datos con tildes y eñes

$array=("nombre"=>"Canzión", "edad"=>"10 años");
echo json_encode($array);

{"nombre":"Canzi", "edad":"10 a"}

como haria que me aceptara caracteres especiales

cualquier comentario me sirve
gracias

Última edición por gersveo; 21/01/2009 a las 11:54
  #2 (permalink)  
Antiguo 21/01/2009, 10:40
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema con json_encode() con caracteres especiales

Hola gersevo,

Prueba usar ut8_encode sobre la variable (antes de pasarla a json_encode) o usa htmlentities también.

Saludos
  #3 (permalink)  
Antiguo 21/01/2009, 11:58
Avatar de gersveo  
Fecha de Ingreso: julio-2008
Mensajes: 145
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: Problema con json_encode() con caracteres especiales

Cita:
Iniciado por GatorV Ver Mensaje
Hola gersevo,

Prueba usar ut8_encode sobre la variable (antes de pasarla a json_encode) o usa htmlentities también.

Saludos
ocurre un problema al hacer utf8_encode o el htmlentities y es que tengo campos con html, etiquetas <b></b> <br>.... y esto lo convierte en caracteres en html.
Bueno no lo he probado con el utf8_encode voy a ver si resulta.
  #4 (permalink)  
Antiguo 22/01/2009, 15:12
Avatar de gersveo  
Fecha de Ingreso: julio-2008
Mensajes: 145
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: Problema con json_encode() con caracteres especiales

esta fue la solucion que pude hacer, solo hay que hacer esto
echo encode_json($array);
cualquier sujerencia bienvenida...

<?php
/* JSON por Gerson Vega Olivar by gersveo*/
function encode_json($array)
{
$array_claves=array_keys($array);
$filas=count($array, COUNT_RECURSIVE);
$filas_array=count($array);
if($filas==0 or $filas=="")
return false;
else
{
if($filas>$filas_array)
{
$coma="";
for($j=0; $j<$filas_array; $j++)
{
$array_claves=array_keys($array[$j]);
$filas=count($array[$j]);//
$array_array=$array[$j];
$vector = $vector . $coma . recuperar_array($array_claves,$filas,$array_array) ;
$coma=", ";

}
$vector = '['.$vector.']';
return $vector;
}
else
{
$vector = recuperar_array($array_claves,$filas,$array);
}

}
//------------------------------------------------------------

}
function recuperar_array($array_claves,$filas,$array)
{
for($i=0; $i<$filas; $i++)
{
$coma=", ";
if(($i+1)==$filas)
$coma="";
$vector= $vector . '"' . $array_claves[$i] . '":"' . eregi_replace("[\n|\r|\n\r]", ' ', utf8_encode($array[$array_claves[$i]])). '"' . $coma;
}
$vector="{".$vector."}";
return $vector;
}


?>
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 19:25.