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