Méthode : 1. Ajoutez "//IGNORE" après le deuxième paramètre de la fonction, la syntaxe est "iconv("UTF-8","GB2312//IGNORE",..)" 2. Remplacez gb2312 par " utf-8", la syntaxe est "iconv("GB2312", "UTF-8",..)".
L'environnement d'exploitation de cet article : système Windows 10, PHP version 7.1, ordinateur Dell G3
introduction à iconv()
L'iconv La fonction 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 construite en php5 et le jeu de caractères GB est activé par défaut.
erreur iconv()
Iconv fera une erreur lors de la conversion du caractère "-" en gb2312. La solution est d'ajouter "//IGNORE" après l'encodage qui doit être converti, c'est-à-dire après le. deuxième paramètre de la fonction iconv . Comme suit :
iconv("UTF-8", "GB2312//IGNORE", $data)
ignore signifie ignorer les erreurs lors de la conversion. Sans le paramètre ignore, toutes les chaînes suivant ce caractère ne peuvent pas être enregistrées.
En PHP, la bibliothèque de fonctions iconv peut effectuer la conversion entre différents jeux de caractères et constitue une bibliothèque de fonctions de base indispensable dans la programmation PHP ; mais parfois, iconv sera moins capable de transcoder certaines données sans raison. Par exemple, une erreur se produira lors de la conversion des caractères « — ou chinois traditionnel » en gb2312.
Jetons lentement un coup d'œil à l'utilisation de cette fonction.
L'application la plus simple, remplacez 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 : "-ou chinois traditionnel", "." et d'autres caractères dans les noms anglais, la conversion sera 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, n'utilisez pas gb2312, écrivez-le simplement comme GBK.
Il existe une autre méthode, le deuxième paramètre, ajoutez //IGNORE, ignorez les erreurs, comme suit :
`iconv(``"UTF-8"``,``"GB2312//IGNORE"``,``$data``);`
Il n'y a pas de comparaison spécifique entre ces deux méthodes, j'estime que la première méthode (GBK au lieu de gb2312) est meilleure.
Les exemples sont les suivants :
<?php echo $str= ‘你好,这里是卖咖啡!’; echo '<br />'; echo iconv('GB2312', 'UTF-8', $str); //将字符串的编码从GB2312转到UTF-8 echo '<br />'; echo iconv_substr($str, 1, 1, 'UTF-8'); //按字符个数截取而非字节 print_r(iconv_get_encoding()); //得到当前页面编码信息 echo iconv_strlen($str, 'UTF-8'); //得到设定编码的字符串长度 ?>
Apprentissage recommandé : "Tutoriel vidéo 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!