Maison > php教程 > PHP开发 > le corps du texte

Une meilleure solution pour les caractères chinois tronqués json_encode UTF-8 en php

高洛峰
Libérer: 2017-04-01 15:26:26
original
1586 Les gens l'ont consulté

J'ai récemment utilisé json_encode dans le code interface . J'ai trouvé l'encodage json_encode sur Internet Le définir sur le chinois UTF-8 empêchera les caractères tronqués. Il a été prouvé que cette méthode est effectivement efficace, mais pour une raison quelconque, le code ne fonctionne pas bien après l'avoir utilisé pendant un certain temps. Voici ma propre solution à json_encode. Veuillez partager toutes les bonnes méthodes !

La première méthode :

Il s'agit d'une simple conversion de code, puis renvoyez le tableau requis

C'est suffisant pour mon code.

Copiez le code comme suit

public static function encodeOperations ($array)
 
{
 
foreach ((array)$array as $key => $value) {
 
if (is_array($value)) {
 
encodeOperations($array[$key]);
 
} else {
 
$array[$key] = urlencode(mb_convert_encoding($value,'UTF-8','GBK'));
 
}
 
}
 
return $array;
 
}
Copier après la connexion

Deuxième type :

C'est ce que j'ai vu sur Internet, et puis il y a des commentaires qui disent que là sera un problème de boucle infinie, mais c'est évidemment très complet, et cela s'est produit après l'avoir testé. Je le publie ici pour référence seulement

Le code est le suivant<🎜. >

/**************************************************************
 
*
 
* 使用特定function对数组中所有元素做处理
 
* @param string &$array 要处理的字符串
 
* @param string $tocode 编码后
 
* @param string $oldcode 编码前
 
* @param string $function 要执行的函数
 
* @return boolean $apply_to_keys_also 是否也应用到key上
 
* @return array $array 是否也应用到key上
 
* @access public
 
*
 
*************************************************************/
 
function encodeOperations (&$array, $function, $tocode=false,$oldcode=false,$apply_to_keys_also = false)
 
{
 
foreach ($array as $key => $value) {
(www.jb51.net)
if (is_array($value)) {
 
encodeOperations($array[$key], $function, $apply_to_keys_also);
 
} else {
 
if($tocode&&$oldcode) {
 
if(function_exists(mb_convert_encoding)) {
 
$value = mb_convert_encoding($value,$tocode,$oldcode);
 
}else{
 
return "error";
 
}
 
}
 
$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]);
 
}
 
}
 
}
 
return $array;
 
}
 
 
/****from:http://www.jb51.net/phper/31/66729.htm**********************************************************
 
*
 
* 将数组转换为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);
 
}
Copier après la connexion
La valeur de retour pour le chinois est

nulleSi elle est vide, nous devons d'abord convertir les caractères en uft8 ou utiliser urlencode pour la compiler

Plus de meilleures solutions. vers json_encode Caractères chinois tronqués UTF-8 en php Pour les articles liés aux méthodes, veuillez faire attention au site Web PHP 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
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!