Maison >développement back-end >tutoriel php >conversion d'encodage de caractères php

conversion d'encodage de caractères php

不言
不言original
2018-03-29 12:46:0518817parcourir

Cet article présente principalement la méthode de conversion de l'encodage des caractères PHP. Les étapes de la méthode sont également relativement détaillées. J'espère qu'il pourra vous aider.

iconv — Convertir la chaîne en encodage de caractères demandé (PHP 4 >= 4.0.5, PHP 5)

mb_convert_encoding — Convertir l'encodage de caractères (PHP 4 >= 4.0.6, PHP 5) )

Utilisation :
string mb_convert_encoding ( string str, string to_encoding [, Mixed from_encoding] )
Vous devez d'abord activer la bibliothèque d'extension mbstring et ajouter extension=php_mbstring.dll devant ; php.ini ; Supprimer


string iconv ( string in_charset, string out_charset, string str )
Remarque :
En plus de spécifier l'encodage vers lequel convertir, le deuxième paramètre peut également ajoutez deux suffixes : //TRANSLIT et //IGNORE,
Parmi eux :
//TRANSLIT convertira automatiquement les caractères qui ne peuvent pas être directement convertis en un ou plusieurs caractères approximatifs,
//IGNORE ignorera les caractères qui ne peut pas être directement converti Caractères convertis, alors que l'effet par défaut est de tronquer à partir du premier caractère illégal.
Renvoie la chaîne convertie ou FALSE en cas d'échec.

Utilisation :
1. On constate qu'iconv fera une erreur lors de la conversion du caractère "-" en gb2312. , tous les caractères après ce caractère. Aucune des chaînes ne peut être enregistrée. Quoi qu'il en soit, ces

"-" ne peuvent pas être convertis avec succès et ne peuvent pas être sortis. De plus, mb_convert_encoding n'a pas ce bug
2. mb_convert_encoding peut spécifier plusieurs encodages d'entrée en fonction du contenu, mais l'efficacité d'exécution est bien pire que celle d'iconv ;
mb_convert_encoding($str ,"euc-jp","ASCII,JIS,EUC-JP,SJIS,UTF-8");L'ordre de "ASCII,JIS,EUC-JP,SJIS,UTF-8" également a des effets différents

Différence
3. Utilisez généralement iconv Uniquement lorsque vous ne parvenez pas à déterminer quel est l'encodage d'origine, ou lorsque iconv ne peut pas être affiché normalement après la conversion, utilisez la fonction mb_convert_encoding
.
.
from_encoding est spécifié par le nom de code de caractère avant la conversion. Il peut s'agir d'un tableau ou d'une chaîne - séparé par des virgules

liste énumérée. S'il n'est pas spécifié, l'encodage interne sera utilisé. >
$str = mb_convert_encoding($ str, "UCS-2LE", "JIS, eucjp-win, sjis-win");

$str = mb_convert_encoding($str, "EUC-JP'); , "auto");

Exemple :
$content = iconv("GBK", "UTF-8", $content = mb_convert_encoding($content, "UTF-); 8", "GBK");



Conclusion

1. mb_convert_encoding() Cette fonction identifiera automatiquement l'encodage en fonction de le contenu, mais l'efficacité d'exécution est pire que iconv;
2. Ensuite, il y a un dicton selon lequel iconv() sera anormal lors de la conversion de certains caractères. Il y a un dicton sur Internet : on constate que iconv fera un. erreur lors de la conversion du caractère "-" en gb2312. S'il n'y a pas de paramètre ignorer, tous les caractères après ce caractère ne peuvent pas être enregistrés. Quoi qu'il en soit, ce "-" ne peut pas être converti avec succès et ne peut pas être généré. mb_convert_encoding n'a pas ce bug.

3. mb_convert_encoding() est une fonction d'extension PHP et doit être activée pour utiliser la bibliothèque d'extension ; iconv C'est une fonction intégrée de PHP et peut être utilisée sans ouvrir une extension supplémentaire ; bibliothèque.

4. Dans des circonstances normales, iconv est utilisé uniquement lorsque l'encodage d'origine ne peut pas être déterminé ou que iconv ne peut pas être affiché normalement après la conversion, utilisez la fonction mb_convert_encoding


Recommandations associées :

Comment résoudre le code tronqué de conversion d'encodage php

exemple de conversion d'encodage de tableau php

analyse de conversion d'encodage 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!

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