Maison  >  Article  >  développement back-end  >  Résumé des solutions au problème des caractères chinois tronqués php

Résumé des solutions au problème des caractères chinois tronqués php

伊谢尔伦
伊谢尔伦original
2017-06-07 16:13:231867parcourir

Lorsque des amis apprennent PHP pour la première fois, ils constatent souvent que le contenu affiché dans le navigateur comporte de nombreux caractères tronqués, en particulier lors de la sortie en chinois. Pourquoi y a-t-il des codes tronqués ? De manière générale, il y a deux raisons à l'apparition de caractères tronqués. L'une est due à un paramètre d'encodage (jeu de caractères) incorrect, ce qui entraîne une analyse du navigateur avec un encodage incorrect, ce qui entraîne un écran rempli de « livres célestes » en désordre. La deuxième est que le fichier est Si vous l'ouvrez avec le mauvais encodage puis l'enregistrez, par exemple, si un fichier texte est initialement encodé en GB2312 mais est ouvert en UTF-8 puis enregistré, des caractères tronqués apparaîtront. Dans l'article suivant, nous parlerons du problème et de la solution des caractères chinois tronqués en PHP.

Problème de code brouillé chinois php

1. Comment résoudre le code brouillé chinois problème en php ?

La première méthode : résoudre le problème des caractères chinois tronqués en HTML

Si votre fichier HTML comporte des caractères tronqués, alors vous pouvez ajouter l'encodage UTF8 (internationalisation) dans la balise head Encoding ) : UTF-8 est un codage sans pays, c'est-à-dire qu'il est indépendant de toute langue et peut être utilisé dans n'importe quelle langue.

Deuxième solution de page mixte HTML et PHP

Troisième problème chinois tronqué des pages PHP pures (les données sont statiques)

Quatrièmement, problème PHP+Mysql chinois tronqué

En plus de suivre la troisième opération, vous devez également ajouter l'encodage de la base de données avant d'interroger/modifier/ajouter vos données. De plus, il convient de noter que l'UTF8 est ici différent du précédent, il n'y a pas de ligne horizontale au milieu.

2. Solution au problème de l'utilisation de strrev pour retourner les caractères chinois tronqués en PHP

header("Content-Type: text/html; charset=utf-8");
$str = '处理使用strrev()函数时的乱码问题';
function cnstrrev($str)
{
  $len = strlen($str);
  for($i = 0; $i < $len; $i++)
  {
    $char = $str{0};
    if(ord($char) > 127) //ord()函数取得第一个字符的ASCII码,如果大于0xa0(127)的话则是中文字符
    {
      $i+=2;//utf-8编码的情况下,一个中文字符占三个字节
      if($i < $len)
      {
        $arr[] = substr($str, 0, 3);//utf-8编码的情况下,一个中文字符占三个字节
        $str = substr($str, 3);
      }
    }
    else
    {
      $arr[] = $char;
      $str = substr($str, 1);//否则为非中文,占一个字符
    }
  }
  return join(array_reverse($arr));//以相反的元素顺序返回数组:
}
echo $str.&#39;+&#39;.cnstrrev($str);

Solution à json_encode UTF-8 chinois tronqué. caractères en PHP

Il s'agit d'une simple conversion de code, puis renvoie le tableau requis après l'urlcode

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,&#39;UTF-8&#39;,&#39;GBK&#39;));  
        }  
    }
  return $array;  
}

4 Une collection de solutions aux caractères chinois tronqués transmis. dans la barre d'adresse url php

encodage d'url
Syntaxe : string urlencode(string str);
Valeur de retour : string
Type de fonction : traitement d'encodage

décodage d'url
Restaurer la chaîne codée d'URL.
Syntaxe : string urldecode(string str);
Valeur de retour : String
Type de fonction : traitement d'encodage

5 Json_encode en php gère les problèmes gbk et gb2312 chinois tronqués Solution <.>

On peut voir que même si les caractères codés en UTF8 sont utilisés, json_encode provoquera également des caractères chinois tronqués. La solution est de traiter les caractères avec la fonction urlencode() avant d'utiliser json_encode, puis json_encode, puis d'utiliser la fonction urldecode() pour les reconvertir lors de la sortie du résultat.

6.

Solution au problème de confusion du chinois Ajax en PHP

Parce que XMLHttp décode le corps de réponse selon l'encodage UTF-8 lors du traitement du texte de réponse renvoyé si le côté serveur. Si le flux de données envoyé est effectivement codé en UTF-8, alors les caractères chinois s'afficheront correctement, mais s'il s'agit d'un codage GBK ou autre, la situation ci-dessus se produira.

Questions et réponses connexes

1

J'ai rencontré un problème magique causé par des caractères chinois tronqués

2. .

Code php chinois tronqué

3.

La page Web chinoise tronquée ne peut pas être résolue, voir l'image

[Recommandations associées. ]

1. Tutoriels vidéo gratuits sur le site Web php chinois :

"php.cn Dugu Jiujian (4) -tutoriel vidéo php"

2. website:

《Tutoriel d'introduction à PHP : apprendre PHP en une semaine》

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