Maison  >  Article  >  développement back-end  >  Que faire si php json est converti en code tronqué de tableau

Que faire si php json est converti en code tronqué de tableau

PHPz
PHPzoriginal
2023-04-27 16:39:13601parcourir

Lors de la conversion de php json en tableau, nous rencontrons souvent des problèmes de code tronqué. La racine de ce problème réside dans l’incohérence des jeux de caractères.

Le jeu de caractères par défaut de Java, Python et d'autres langages est utf-8, tandis que le jeu de caractères par défaut de php est ISO-8859-1. Par conséquent, lors du traitement des chaînes json, si le jeu de caractères de la chaîne json est utf-8 et que le jeu de caractères de php est ISO-8859-1, le tableau converti sera tronqué.

Voyons comment résoudre ce problème.

1. Spécifiez le jeu de caractères de la chaîne json

Lorsque nous connaissons le jeu de caractères de la chaîne json, nous pouvons résoudre le problème en spécifiant le jeu de caractères.

Exemple de code :

$json_str = iconv('utf-8','ISO-8859-1',$json_str); //将json字符串的字符集从utf-8转换为ISO-8859-1
$arr = json_decode($json_str, true); //将json字符串转换成数组

2. Changez le jeu de caractères php par défaut

Lorsque nous ne pouvons pas connaître le jeu de caractères de la chaîne json, ou que nous devons traiter un grand nombre de chaînes json, nous pouvons modifier le jeu de caractères php par défaut. De cette façon, il n'y aura aucun caractère tronqué lors du traitement d'une chaîne json.

La façon de changer le jeu de caractères par défaut de php est de le modifier dans le fichier php.ini. Nous pouvons réaliser cette opération en suivant les étapes suivantes :

  1. Ouvrez le fichier php.ini

Entrez la commande suivante dans le terminal pour ouvrir le fichier php.ini :

sudo vi /etc/php/7.3/apache2/php.ini
  1. Modifiez le jeu de caractères par défaut

Dans Dans le fichier php.ini, recherchez les deux lignes suivantes, décommentez et modifiez le jeu de caractères en utf-8 :

;default_charset = "iso-8859-1"
default_charset = "utf-8"
  1. Redémarrez Apache

Après avoir enregistré le fichier php.ini, vous devez redémarrer Apache pour que les modifications prennent effet. effet :

sudo service apache2 restart
  1. Test

Après avoir modifié le jeu de caractères par défaut de php, nous pouvons tester si nous pouvons analyser correctement la chaîne json. Exemple de code :

$arr = json_decode($json_str, true); //将json字符串转换成数组

Résumé

Json pour mettre en tableau du code tronqué est un problème courant, mais c'est aussi un problème facile à résoudre. Nous pouvons résoudre ce problème en spécifiant le jeu de caractères de la chaîne json ou en modifiant le jeu de caractères PHP par défaut. Quoi qu’il en soit, vous devez comprendre le concept de jeux de caractères afin d’effectuer la conversion correctement.

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