Maison >développement back-end >Problème PHP >Que dois-je faire si Android donne des caractères chinois tronqués à php ?
Solution aux caractères chinois tronqués sur Android en PHP : 1. Ouvrez le fichier PHP correspondant ; 2. Avant "json_encode", utilisez "urlencode()" pour traiter tout le contenu de tous les tableaux ; 3. Utilisez "json_encode()" Convertissez-le ; en une chaîne json ; 4. Utilisez "urldecode()" pour reconvertir le chinois codé.
L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 8.1, ordinateur Dell G3.
Que dois-je faire si Android donne des caractères chinois tronqués à php ?
1. Android lui-même ne peut pas accéder directement à la base de données mysql. Vous devez utiliser des pages Web PHP pour terminer le fonctionnement de la base de données mysql. L'échange de données entre PHP et Android nécessite l'utilisation du format JSON.
2. Qu'est-ce que json
Au début du 21e siècle, Douglas Crockford recherchait un format d'échange de données simple capable d'échanger des données entre serveurs. Le langage d'échange de données commun à cette époque était XML, mais Douglas Crockford a estimé que la génération et l'analyse de XML étaient trop fastidieuses, il a donc proposé un format simplifié, qui est Json.
La spécification de Json est très simple et peut être expliquée clairement en quelques centaines de mots sur une page, et Douglas Crockford a affirmé que cette spécification n'a jamais besoin d'être mise à niveau car toutes les réglementations sont stipulées.
1) Les données parallèles sont séparées par des virgules ("", ").
2) La cartographie est représentée par deux points ("": ").
3) La collection (tableau) de données parallèles est représentée par des crochets ("[]").
4) La collection mappée (objet) est représentée par des accolades ("{}").
Les quatre règles ci-dessus sont tout le contenu du format Json.
Par exemple, la phrase suivante :
"Pékin a une superficie de 16 800 kilomètres carrés et une population permanente de 16 millions d'habitants. Shanghai a une superficie de 6 400 kilomètres carrés et une population permanente de 18 millions d'habitants.
Écrit au format json, c'est comme ceci :
[ {"城市":"北京","面积":16800,"人口":1600}, {"城市":"上海","面积":6400,"人口":1800}]
Si la structure des données est connue à l'avance, l'écriture ci-dessus peut être encore simplifiée :
[ ["北京",16800,1600], ["上海",6400,1800]]
On voit que json est très facile à apprendre et à utiliser. en quelques années seulement, il a remplacé XML et est devenu le format d'échange de données le plus populaire sur Internet
3. Caractères chinois tronqués JSON en PHP
Utilisez la fonction intégrée json_encode() en php (php). > 5.2). Les données en php peuvent être transférées et utilisées avec d'autres langages. La fonction de cette fonction est de convertir la valeur au format de stockage de données json.
<?php $arr = array( 'Name'=>'希亚','Age'=>20); $jsonencode = json_encode($arr); echo $jsonencode; ?>
Le résultat de l'opération du programme est le suivant :
.
Les caractères chinois dans le tableau apparaissent comme u5e0cu4e9a après json_encode. La solution est d'utiliser la fonction urlencode() qui gère ce qui suit. Avant json_encode, utilisez urlencode() pour traiter tout le contenu de tous les tableaux, puis utilisez json_encode(. ) pour le convertir en chaîne json, et enfin utilisez urldecode() pour reconvertir le chinois encodé
<?php /************************************************************** * * 使用特定function对数组中所有元素做处理 * @param string &$array 要处理的字符串 * @param string $function 要执行的函数 * @return boolean $apply_to_keys_also 是否也应用到key上 * @access public * *************************************************************/ function arrayRecursive(&$array, $function, $apply_to_keys_also = false) { static $recursive_counter = 0; if (++$recursive_counter > 1000) { die('possible deep recursion attack'); } foreach ($array as $key => $value) { if (is_array($value)) { arrayRecursive($array[$key], $function, $apply_to_keys_also); } else { $array[$key] = $function($value); } if ($apply_to_keys_also && is_string($key)) { $new_key = $function($key); if ($new_key != $key) { $array[$new_key] = $array[$key]; unset($array[$key]); } } } $recursive_counter--; } /************************************************************** * * 将数组转换为JSON字符串(兼容中文) * @param array $array 要转换的数组 * @return string 转换得到的json字符串 * @access public * *************************************************************/ function JSON($array) { arrayRecursive($array, 'urlencode', true); $json = json_encode($array); return urldecode($json); } $array = array ( 'Name'=>'希亚','Age'=>20); echo JSON($array); ?>
Cette fois, le code s'est exécuté avec succès
Apprentissage recommandé : "
Tutoriel vidéo PHP".
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!