ホームページ  >  記事  >  バックエンド開発  >  iconv を介して文字列を GBK から UTF8 文字セットに変換する php メソッド

iconv を介して文字列を GBK から UTF8 文字セットに変換する php メソッド

怪我咯
怪我咯オリジナル
2017-07-07 10:20:243149ブラウズ

PHP は iconv を使用して string を GBK から UTF8 文字セット に変換します。必要な友人はそれを参照できます。

1. iconv() の概要 iconv 関数は、既知の文字セット ファイルを別の既知の文字セット ファイルに変換できます。例: GB2312 から UTF-8 に変換します。
iconv 関数は php5 に組み込まれており、デフォルトで GB 文字セットがオンになっています。
2. iconv() エラー
iconv は文字「-」を gb2312 に変換するときにエラーを起こします。解決策は、変換する必要があるエンコーディングの後ろ、つまり の 2 番目のパラメーターの後に「//IGNORE」を追加することです。 iconv 関数は次のとおりです:

コードは次のとおりです:

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

ignore は、ignore パラメーターがないと、この文字に続くすべての文字列を保存できません。

3. iconv() の例
例 1:

コードは次のとおりです:

<?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;); //得到设定编码的字符串长度 
?>

例 2:

PHP ファイルが UTF-8 でエンコードされている場合、次のコードは正しく出力できます。コードは次のとおりです:

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

PHP ファイルが GB の場合、次のコードは機能します:

コードは次のとおりです:

<?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; 
?>

上記の場合、プログラムの出力は次のようになります:

%E6%88% 91%E7%88 %B1%E7%99%BE%E5%BA%A6

以上がiconv を介して文字列を GBK から UTF8 文字セットに変換する php メソッドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。