Maison  >  Article  >  développement back-end  >  PHP reconnaît et convertit automatiquement l'encodage du texte

PHP reconnaît et convertit automatiquement l'encodage du texte

*文
*文original
2017-12-27 14:03:491659parcourir

Comment PHP identifie-t-il et convertit-il automatiquement l'encodage du texte ? Cet article présente principalement la méthode par laquelle PHP identifie automatiquement l'encodage de texte et le convertit en encodage cible, impliquant le jugement de PHP sur l'encodage actuel et les compétences de mise en œuvre de la conversion d'encodage correspondante. J'espère que cela aide tout le monde.

Les détails sont les suivants :

Lorsque PHP traite des pages, nous utilisons des fonctions telles que iconv ou mb_convert pour convertir les jeux de caractères, mais cela a en fait une prémisse. Autrement dit, nous devons savoir à l’avance quels sont les codages entrant et sortant afin de pouvoir effectuer la conversion correcte.

Bien que la plupart des conversions se fassent entre gbk et utf-8, que devez-vous faire si vous ne connaissez pas l'encodage de l'objet de conversion ? Google a mis au point une telle fonction safeEncoding, qui peut facilement identifier l'encodage ? de UTF8 et GBK . Cette fonction est très précise dans une certaine mesure, mais elle n'est pas si facile à utiliser dans certains environnements plus complexes. Ci-dessous, je combine les différences entre l'encodage GBK et UTF-8 et j'utilise des expressions régulières pour déterminer l'encodage UTF-8 et j'utilise mb_convert_encoding. fonction à convertir. En Chine, les encodages les plus populaires sont GBK et UTF-8, cette fonction convertit donc automatiquement ces deux encodages


/**
* @ string 需要转换的文字
* @ encoding 目标编码
**/
function detect_encoding($string,$encoding = 'gbk'){
 $is_utf8 = preg_match('%^(?:[\x09\x0A\x0D\x20-\x7E]| [\xC2-\xDF][\x80-\xBF]| \xE0[\xA0-\xBF][\x80-\xBF] | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}  | \xED[\x80-\x9F][\x80-\xBF] | \xF0[\x90-\xBF][\x80-\xBF]{2} | [\xF1-\xF3][\x80-\xBF]{3} | \xF4[\x80-\x8F][\x80-\xBF]{2} )*$%xs', $string);
 if($is_utf8 && $encoding == 'utf8'){
  return $string;
 }elseif($is_utf8){
  return mb_convert_encoding($string, $encoding, "UTF-8");
 }else{
  return mb_convert_encoding($string, $encoding, 'gbk,gb2312,big5');
 }
}

Recommandations associées. :

conversion d'encodage php - conversion d'encodage de caractères

méthode de transcodage de code brouillé php pour déclencher l'accès à url

utf-8-PHP code tronqué-code tronqué partiel

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