Maison  >  Article  >  php教程  >  Discutez de la solution détaillée aux caractères chinois tronqués dans PHP JSON

Discutez de la solution détaillée aux caractères chinois tronqués dans PHP JSON

高洛峰
高洛峰original
2016-12-27 16:22:301442parcourir

Nous savons que lors de l'utilisation de la technologie Ajax pour interagir avec le backend PHP, les caractères chinois tronqués sont courants. JSON, en tant que format d'échange de données similaire à XML, provoquera également des caractères chinois tronqués lorsque PHP est utilisé pour interagir. L'idée de résoudre les caractères chinois tronqués en JSON est en fait similaire à la solution aux caractères chinois tronqués dans les valeurs PHP Ajax. Ci-dessous, je présenterai en détail la méthode de résolution des caractères chinois tronqués en PHP JSON sous la forme d'un tutoriel.

Pourquoi des caractères chinois tronqués apparaissent-ils lorsque PHP interagit avec JSON ?

Étant donné que JSON est identique à JS, les caractères sur le client sont traités sous forme UTF8, c'est-à-dire que les caractères renvoyés par la soumission ou l'acceptation JSON sont traités sous forme UTF8 lors de l'interaction avec PHP. , si l'encodage de la base de données, l'encodage des pages PHP Lorsque le format UTF8 n'est pas utilisé, les caractères chinois seront tronqués lorsque PHP interagit avec JSON.

Méthodes pour résoudre les caractères chinois tronqués dans PHP JSON

Après avoir connu les raisons pour lesquelles les caractères chinois tronqués sont générés lorsque PHP interagit avec JSON, la solution est en réalité beaucoup plus simple.

Méthode 1 pour résoudre le PHP JSON tronqué en chinois : assurez-vous que les encodages de la base de données et des pages PHP front-end et back-end sont cohérents.

Le moyen le plus simple de résoudre le PHP JSON tronqué en chinois est de s'assurer que l'encodage de la base de données et l'encodage des pages PHP sont cohérents au format UTF8. Pour les débutants en PHP, il est préférable d'utiliser le format UTF8 pour la base de données lors de la création d'un site Web, ce qui peut réduire bien des problèmes.

Méthode 2 pour résoudre le code chinois tronqué PHP JSON : configurer et utiliser la fonction PHP urlencode et la fonction JS decodeURI()

Lorsque PHP utilise JSON pour interagir avec le JS front-end, vous devez utilisez la fonction urlencode avant d'utiliser la fonction json_encode. Encodez l'URL, décodez l'URL via la fonction JS decodeURI() sur le client JS, puis lisez les informations en chinois.

Remarque : lorsque vous interagissez via JSON dans une page PHP, par exemple lors de la conversion d'un tableau au format JSON, utilisez d'abord la fonction urlencode pour encoder en URL la clé et la valeur du tableau, puis utilisez la fonction json_encode et la fonction urldecode.

Troisième méthode pour résoudre le code chinois tronqué PHP JSON : utiliser la fonction de conversion d'encodage de chaîne

Lorsque l'encodage de la base de données et l'encodage de la page PHP sont incohérents pour diverses raisons, par exemple, l'encodage de la base de données existante utilise GB2312, À l'heure actuelle, lorsque vous utilisez l'interaction JSON, vous devez utiliser la fonction de conversion d'encodage de chaîne pour convertir entre les jeux de caractères. Les fonctions couramment utilisées incluent iconv. Étant donné qu'iconv nécessite la prise en charge de l'environnement de configuration PHP, s'il n'est pas pris en charge, vous pouvez implémenter la conversion d'encodage en écrivant vos propres fonctions de conversion d'encodage gbk et UTF8.

Jusqu'à présent, les trois solutions aux caractères chinois tronqués dans PHP JSON ont été introduites. En fait, dans le développement PHP, lorsque l'on rencontre des interactions similaires entre PHP et AJAX/JS, ces méthodes sont essentiellement utilisées lorsque les caractères chinois sont tronqués. sont générés. L’idée est similaire.

Pour des explications plus détaillées sur les solutions aux caractères chinois tronqués PHP JSON, veuillez faire attention au site Web PHP 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