"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo codificar correctamente caracteres especiales en JSON con la función json_encode() de PHP?

¿Cómo codificar correctamente caracteres especiales en JSON con la función json_encode() de PHP?

Publicado el 2024-11-17
Navegar:259

How to Correctly Encode Special Characters in JSON with PHP\'s json_encode() Function?

Codificación JSON y caracteres especiales

Mientras se codifican matrices usando la función json_encode(), puede suceder que los elementos que contienen caracteres especiales se conviertan a cadenas vacías. Este comportamiento es particularmente notable con caracteres como símbolos de derechos de autor o marcas comerciales.

Para resolver este problema, asegúrese de que todos los datos de cadena estén codificados en UTF-8 antes de codificarlos como JSON. Esto se puede lograr usando array_map() junto con la función utf8_encode():

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

Como se indica en el manual de PHP, json_encode() requiere que todos los datos de cadena estén codificados en UTF-8. Al codificar los elementos de la matriz en UTF-8 antes de la codificación JSON, nos aseguramos de que los caracteres especiales se representen correctamente en la salida JSON.

Para mayor claridad, comparemos los resultados de codificar una matriz con y sin UTF-8 codificación:

Sin codificación UTF-8:

$arr = ["funds" => "ComStage STOXX®Europe 600 Techn NR ETF"];
$json = json_encode($arr); // {"funds":null}

Con codificación UTF-8:

$arr = array_map('utf8_encode', ["funds" => "ComStage STOXX®Europe 600 Techn NR ETF"]);
$json = json_encode($arr); // {"funds":"ComStage STOXX\u00c2\u00aeEurope 600 Techn NR ETF"}

Al aplicar la codificación UTF-8, los caracteres especiales se representan correctamente en la salida JSON. Recuerde usar utf8_encode() constantemente para una codificación adecuada.

Declaración de liberación Este artículo se reimprime en: 1729242557 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3