Maison > développement back-end > Problème PHP > Que faire si la fonction iconv en PHP signale une erreur

Que faire si la fonction iconv en PHP signale une erreur

WBOY
Libérer: 2023-03-15 17:38:01
original
2601 Les gens l'ont consulté

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",..)".

Que faire si la fonction iconv en PHP signale une erreur

L'environnement d'exploitation de cet article : système Windows 10, PHP version 7.1, ordinateur Dell G3

Que faire si la fonction iconv signale une erreur dans php

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)
Copier après la connexion

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``);`
Copier après la connexion

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``);`
Copier après la connexion

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``);`
Copier après la connexion

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 &#39;<br />&#39;;
    echo iconv(&#39;GB2312&#39;, &#39;UTF-8&#39;, $str); //将字符串的编码从GB2312转到UTF-8
    echo &#39;<br />&#39;;
    echo iconv_substr($str, 1, 1, &#39;UTF-8&#39;); //按字符个数截取而非字节
    print_r(iconv_get_encoding()); //得到当前页面编码信息
    echo iconv_strlen($str, &#39;UTF-8&#39;); //得到设定编码的字符串长度
  ?>
Copier après la connexion

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!

Étiquettes associées:
php
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal