JSON_INVALID_UTF8_SUBSTITUTE

Por Virginia Rojas Actualizado el 6 de noviembre de 2024 En Errores de codigo

La constante JSON_INVALID_UTF8_SUBSTITUTE se utiliza en PHP con la función json_encode. Sirve para manejar caracteres UTF-8 no válidos en los datos al codificarlos en formato JSON.

Cuando esta opción está activada, cualquier byte o secuencia de bytes no válida en UTF-8 será reemplazada por el carácter de sustitución estándar, que suele ser (U+FFFD).

$data = [
    "name" => "Usuario",
    "description" => "\xB1caracteres no válidos\xB1"
];

$json = json_encode($data, JSON_INVALID_UTF8_SUBSTITUTE);
echo $json;

Explicación

  • Si intentas codificar caracteres no válidos en UTF-8 sin esta opción, json_encode devolverá false y generará un error.
  • Con JSON_INVALID_UTF8_SUBSTITUTE, los caracteres inválidos se reemplazarán automáticamente, evitando errores en el proceso de codificación.

Esta opción es útil cuando necesitas asegurar que tu salida en JSON sea válida, incluso si los datos de entrada tienen errores en la codificación.