Saltar al contenido

Cómo hacer que json_encode () funcione con ISO-8859-1 (åäö)

Solución:

Dice en el json_encode() documentación:

Esta función solo funciona con datos codificados en UTF-8.

Primero debe convertirlo a utf-8 con iconv o mbstring.

Como mencionó Greg, tuve que codificar åäö para UTF-8. Pero no usé iconv o mbstring. Cuando yo utf8_encode() todos los valores antes de poner los valores al array El problema fue resuelto.

Esta función emitirá el tipo de datos correcto para la salida JSON y utf8_encode las cadenas.

    /* Change data-type from string to integar or float if required.
     * If string detected then utf8_encode() it. */
    function cast_data_types ($value) {
      if (is_array($value)) {
        $value = array_map('cast_data_types',$value);
        return $value;
      }
      if (is_numeric($value)) {
        if(strpos('.', $value)===false) return (float)$value;
        return (int) $value;
      }
      return utf8_encode((string)$value);
    }

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



Utiliza Nuestro Buscador

Deja una respuesta

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