"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como codificar corretamente caracteres especiais em JSON com a função json_encode() do PHP?

Como codificar corretamente caracteres especiais em JSON com a função json_encode() do PHP?

Publicado em 17/11/2024
Navegar:916

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

Codificação JSON e caracteres especiais

Ao codificar matrizes usando a função json_encode(), pode acontecer que elementos contendo caracteres especiais sejam convertidos para cadeias vazias. Esse comportamento é particularmente perceptível com caracteres como símbolos de direitos autorais ou marcas registradas.

Para resolver esse problema, certifique-se de que todos os dados da string estejam codificados em UTF-8 antes de codificá-los como JSON. Isso pode ser conseguido usando array_map() em conjunto com a função utf8_encode():

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

Conforme observado no manual do PHP, json_encode() requer que todos os dados da string sejam codificados em UTF-8. Ao codificar os elementos da matriz para UTF-8 antes da codificação JSON, garantimos que os caracteres especiais sejam representados corretamente na saída JSON.

Para maior clareza, vamos comparar os resultados da codificação de uma matriz com e sem UTF-8 codificação:

Sem codificação UTF-8:

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

Com codificação 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"}

Ao aplicar a codificação UTF-8, os caracteres especiais são representados corretamente na saída JSON. Lembre-se de usar utf8_encode() consistentemente para uma codificação adequada.

Declaração de lançamento Este artigo foi reimpresso em: 1729242557 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3