La fonction iconv() peut être utilisée en php pour convertir l'encodage gbk en encodage utf8 ; la fonction iconv peut convertir un fichier de jeu de caractères connu en un autre fichier de jeu de caractères connu, le format de syntaxe est " iconv('GBK ', 'UTF-8', chaîne)".
Recommandé : "Tutoriel vidéo PHP"
Convertir gbk en utf8 en php
En php, vous pouvez utiliser la fonction iconv() pour convertir gbk en utf8.
La fonction iconv peut convertir un fichier de jeu de caractères connu en un autre fichier de jeu de caractères connu. Par exemple : convertissez de GB2312 en UTF-8.
La fonction iconv est intégrée à PHP5 et le jeu de caractères GB est activé par défaut.
Exemple :
<?php header("Content-type:text/html;charset=GB2312"); echo $str= '你好,这里是gbk转utf8!'; echo '<br />'; echo iconv('GB2312', 'UTF-8', $str); //将字符串的编码从GB2312转到UTF-8
Explication : fonction php iconv
La bibliothèque de fonctions iconv en php peut compléter la conversion entre différents jeux de caractères, qui est php Une bibliothèque de fonctions de base indispensable en programmation mais parfois iconv est moins capable de transcoder certaines données sans raison. Par exemple, une erreur se produira lors de la conversion du caractère « - » en gb2312.
Jetons lentement un coup d'œil à l'utilisation de cette fonction.
L'application la plus simple consiste à remplacer gb2312 par utf-8 :
$text=iconv("GB2312","UTF-8",$text);
En cours d'utilisation de $text=iconv("UTF-8","GB2312",$text)
, si vous rencontrez des caractères spéciaux, tels que : "-", "." et autres caractères dans les noms anglais, la conversion est interrompue. Le texte après ces caractères ne peut pas être converti davantage.
Pour résoudre ce problème, vous pouvez utiliser le code suivant pour y parvenir :
$text=iconv("UTF-8","GBK",$text);
Vous avez bien lu, c'est aussi simple que cela, n'utilisez pas gb2312, écrivez-le simplement en GBK.
Il existe une autre méthode, le deuxième paramètre, ajoutez //IGNORE
, ignorez l'erreur, comme suit :
iconv("UTF-8","GB2312//IGNORE",$data);
Il n'y a pas de comparaison spécifique entre ces deux méthodes, j'ai l'impression que la première (GBK au lieu de gb2312) est meilleure.
Description d'Iconv() dans le manuel php :
iconv
<. 🎜 >Lorsque vous utilisez cette fonction pour convertir l'encodage de chaîne, veuillez noter que si vous convertissez utf-8 en gb2312, la chaîne peut être tronquée. À ce stade, vous pouvez utiliser la méthode suivante pour résoudre le problème :(PHP 4 > ; = 4.0.5, PHP 5)
iconv – Convertir la chaîne en codage de caractères demandé
Description
string iconv ( string in_charset, string out_charset, string str )
Effectue une conversion de jeu de caractères sur la chaîne str de in_charset à out_charset. Renvoie la chaîne convertie ou FALSE en cas d'échec.
Si vous ajoutez la chaîne //TRANSLIT à out_charset, la translittération est activée. Cela signifie que lorsqu'un caractère ne peut pas être représenté dans le jeu de caractères cible, il peut le faire. être approximé par un ou plusieurs caractères d'apparence similaire. Si vous ajoutez la chaîne //IGNORE, les caractères qui ne peuvent pas être représentés dans le jeu de caractères cible sont ignorés silencieusement, sinon, str est coupé du premier caractère illégal.
$str=iconv('utf-8',"gb2312//TRANSLIT",file_get_contents($filepath));
Introduction aux fonctions mb_convert_encoding et iconv
Cette fonction est utilisée pour convertir les encodages. Avant, je ne comprenais pas le concept de codage de programme, mais maintenant il me semble comprendre un peu. Cependant, l'anglais n'a généralement pas de problèmes d'encodage, seules les données chinoises auront ce problème. Par exemple, lorsque vous utilisez Zend Studio ou Editplus pour écrire un programme, vous utilisez le codage gbk. Si les données doivent être saisies dans la base de données et que le codage de la base de données est utf8, alors les données doivent être codées et converties, sinon elles le seront. devenir tronqué lors de l'entrée dans la base de données. mb_convert_encoding
Créer un GBK vers UTF-8 :
<?php header("content-Type: text/html; charset=Utf-8"); echo mb_convert_encoding("妳係我的友仔", "UTF-8", "GBK"); ?>
Un autre GB2312 vers Big5 :
<?php header("content-Type: text/html; charset=big5"); echo mb_convert_encoding("你是我的朋友", "big5", "GB2312"); ?>
Vous devez d'abord activer la bibliothèque d'extension mbstring. Dans php.ini, ajoutez : extension=php_mbstring.dll devant ; vous pouvez spécifier plusieurs encodages d'entrée. identifier en fonction du contenu, mais l'efficacité d'exécution Bien pire qu'iconv ;string mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] )
string iconv ( string in_charset, string out_charset, string str )
注意:第二个参数,除了可以指定要转化到的编码以外,还可以增加两个后缀://TRANSLIT 和 //IGNORE,其中 //TRANSLIT 会自动将不能直接转化的字符变成一个或多个近似的字符,//IGNORE 会忽略掉不能转化的字符,而默认效果是从第一个非法字符截断。
一般情况下用 iconv,只有当遇到无法确定原编码是何种编码,或者iconv转化后无法正常显示时才用mb_convert_encoding
函数。
$content = iconv("GBK", "UTF-8″, $content); $content = mb_convert_encoding($content, "UTF-8″, "
更多编程相关知识,请访问:编程学习课程!!
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!