funcion - php json_encode to js



Función json_encode: caracteres especiales (4)

Para solucionar el problema del personaje especial solo tienes que hacer 2 cosas

1. mysql_set_charset('utf8'); // establece esta línea en la parte superior de la página en la que está usando json.

  1. Si está guardando datos json en la base de datos, asegúrese de que la intercalación de columnas en particular esté configurada en " latin1_swedish_ci ".

Los elementos de una matriz que contiene caracteres especiales se convierten a cadenas vacías cuando se codifica la matriz con json_encode:

$arr = array ( "funds" => "ComStage STOXX®Europe 600 Techn NR ETF", "time"=>....);
$json = json_encode($arr);

Después de la codificación JSON, el elemento [fondos] es nulo. Sucede solo con caracteres especiales (derechos de autor, marca registrada, etc.) como los de "ComStage STOXX®Europe 600 Techn NR ETF".

¿Alguna sugerencia?

Gracias

ACTUALIZACIÓN: Esto es lo que resolvió el problema antes de poblar la matriz (todos los nombres se toman de la base de datos):

$mysqli->query("SET NAMES 'utf8'");

Answer #1

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);

Answer #2

debe agregar charset = UTF-8 en metaetiqueta y usar json_encode para caracteres especiales

$json = json_encode($arr);

La función json_encode convierte caracteres especiales en el estándar UTF8


Answer #3

deberías usar este código:

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

La función array_map convierte caracteres especiales en el estándar UTF8





json