Maison >développement back-end >tutoriel php >Solution au problème selon lequel json_decode ne peut pas analyser le caractère spécial point d'interrogation en PHP

Solution au problème selon lequel json_decode ne peut pas analyser le caractère spécial point d'interrogation en PHP

黄舟
黄舟original
2017-10-26 10:00:112071parcourir

Lorsque vous demandez des informations via les interfaces d'autres personnes, vous pouvez parfois rencontrer certains caractères, comme la situation suivante, et json_decode renverra null

Cependant, cette situation n'est généralement pas due au problème d'encodage global. lors de l'analyse, il est analysé en codage utf-8

Dans ce cas, le chinois et l'anglais coexistent généralement, mais certains caractères vides ne peuvent pas être reconnus.

Grâce à l'observation de la logique du système, cela devrait être dû à des caractères qui ne sont pas reconnus par utf-8 lors de l'enregistrement des caractères dans la section précédente. Cette situation n'est pas affectée dans json_encode, elle mène donc directement à l'interface. pour obtenir des données Lorsqu'un caractère illégal

apparaît, la solution :


$return_data=mb_convert_encoding($return_data, "UTF-8","UTF-8");

est obligée d'encoder les caractères renvoyés via la requête curl In. dans ce cas, le texte original codé en UTF-8 ne sera pas affecté. En même temps, les caractères qui ne peuvent pas être reconnus par UTF-8 seront forcés d'être analysés. Après l'analyse, les caractères deviendront des symboles anglais ?

De cette façon, tout peut se passer sans problème json_decode

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn