Saltar al contenido

Función json_encode: caracteres especiales

Solución:

El manual de json_encode especifica esto:

Todos los datos de cadena deben estar codificados en UTF-8.

Por lo tanto, intente array_mapsilbido utf8_encode() a su matriz antes de codificarla:

$arr = array_map('utf8_encode', $arr);
$json = json_encode($arr);

// {"funds":"ComStage STOXXu00c2u00aeEurope 600 Techn NR ETF"}

Como referencia, observe las diferencias entre los tres ejemplos de este violín. El primero no usa codificación de caracteres, el segundo usa htmlentities y el tercero usa utf8_encode – todos devuelven resultados diferentes.

Para mayor consistencia, debe usar utf8_encode().

Docs

  • json_encode ()
  • utf8_encode ()
  • array_map ()

Su entrada debe estar codificada como UTF-8 o ISO-8859-1.

http://www.php.net/manual/en/function.json-encode.php

Porque si intenta convertir una matriz de caracteres que no sean utf8, obtendrá 0 como valor de retorno.


Desde 5.5.0 El valor de retorno en caso de falla se cambió de cadena nula a FALSO.

Para mí, funciona de esta manera:

# Creating the ARRAY from Result.
$array=array();

while($row = $result->fetch_array(MYSQL_ASSOC))
{
    # Converting each column to UTF8
    $row = array_map('utf8_encode', $row);
    array_push($array,$row);
}

json_encode($array);
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *