Que dois-je faire si Android donne des caractères chinois tronqués à php ?

藏色散人
Libérer: 2023-03-17 08:30:02
original
1649 Les gens l'ont consulté

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é.

Que dois-je faire si Android donne des caractères chinois tronqués à php ?

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}]
Copier après la connexion

Si la structure des données est connue à l'avance, l'écriture ci-dessus peut être encore simplifiée :

[  ["北京",16800,1600],  ["上海",6400,1800]]
Copier après la connexion

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( &#39;Name&#39;=>&#39;希亚&#39;,&#39;Age&#39;=>20);
$jsonencode = json_encode($arr);
echo $jsonencode;
?>
Copier après la connexion

Le résultat de l'opération du programme est le suivant :

. Que dois-je faire si Android donne des caractères chinois tronqués à php ?

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(&#39;possible deep recursion attack&#39;);    
}    
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, &#39;urlencode&#39;, true); 
$json = json_encode($array);
 return urldecode($json); 
} 
 $array = array ( &#39;Name&#39;=>&#39;希亚&#39;,&#39;Age&#39;=>20); 
 echo JSON($array);
?>
Copier après la connexion

Cette fois, le code s'est exécuté avec succès

Que dois-je faire si Android donne des caractères chinois tronqués à php ?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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal