Maison  >  Article  >  développement back-end  >  méthode php pour convertir une chaîne de caractères GBK en jeu de caractères UTF8 via iconv

méthode php pour convertir une chaîne de caractères GBK en jeu de caractères UTF8 via iconv

怪我咯
怪我咯original
2017-07-07 10:20:243080parcourir

PHP utilise iconv pour convertir la chaîne de GBK en UTF8 jeu de caractères . Les amis qui en ont besoin peuvent s'y référer.

1. Introduction à iconv()
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 construite en php5 et le jeu de caractères GB est activé par défaut.
2. 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, qui est le deuxième. paramètre de la fonction iconv. Après. Comme suit :

Le code est le suivant :

iconv("UTF-8", "GB2312//IGNORE", $data)

ignorer signifie ignorer les erreurs lors de la conversion. toutes les chaînes suivant ce caractère ne peuvent pas être enregistrées.
3. Exemple iconv()
Exemple 1 :

Le code est le suivant :

<?php 
  echo $str= ‘你好,这里是卖咖啡!&#39;; 
  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;); //得到设定编码的字符串长度 
?>

Exemple 2 :
Si votre fichier PHP est Encodage UTF-8, le code suivant peut être généré correctement :

Le code est le suivant :

<?php 
  $str=&#39;我爱百度&#39;; 
  $utf=&#39;&#39;; 
  for ($i=0;$i<strlen($str);$i++) $utf.=sprintf("%%%02X",ord(substr($str,$i,1))); 
  echo $utf; 
?>

Si votre fichier PHP est en Go, alors le code suivant peut travail :

Le code est le suivant :

<?php 
  $str=&#39;我爱百度&#39;; 
  $str=iconv("GBK", "UTF-8", $str); 
  $utf=&#39;&#39;; 
  for ($i=0;$i<strlen($str);$i++) $utf.=sprintf("%%%02X",ord(substr($str,$i,1))); 
  echo $utf; 
?>

Dans le cas ci-dessus, la sortie du programme est :
%E6%88%91%E7%88% B1%E7%99 %BE%E5%BA%A6

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