方法: 1. 関数の 2 番目のパラメーターの後に「//IGNORE」を追加します。構文は「iconv("UTF-8","GB2312//IGNORE",..)」です。 gb2312 を「utf-8」に置き換えます。構文は「iconv("GB2312","UTF-8",..)」です。
この記事の動作環境: Windows 10 システム、PHP バージョン 7.1、Dell G3 コンピューター
iconv() のエラー 概要
iconv 関数は、既知の文字セット ファイルを別の既知の文字セット ファイルに変換できます。例: GB2312 から UTF-8 に変換します。
iconv 関数は php5 に組み込まれており、GB 文字セットはデフォルトでオンになっています。
iconv() error
Iconv は、文字「-」を gb2312 に変換するときにエラーを起こします。解決策は、エンコーディングの後に「" を追加することです」 //IGNORE"、つまり、iconv 関数の 2 番目のパラメーターの後。次のように:
iconv("UTF-8", "GB2312//IGNORE", $data)
ignore は、変換中にエラーを無視することを意味します。ignore パラメータを指定しないと、この文字に続くすべての文字列は保存できません。
PHP の iconv 関数ライブラリは、さまざまな文字セット間の変換を完了でき、PHP プログラミングに不可欠な基本関数ライブラリですが、場合によっては、理由もなく iconv が一部のデータをトランスコードできなくなることがあります。たとえば、文字「—または繁体字中国語」を gb2312 に変換するとエラーが発生します。
この関数の使用法を見てみましょう。
最も単純なアプリケーションは、gb2312 を utf-8 に置き換えることです:
`$text``=iconv(``"GB2312"``,``"UTF-8"``,``$text``);`
$text=iconv("UTF-8","GB2312",$text) を使用するプロセスで、 「— または繁体字中国語」、英語名の「.」などの特殊文字が出現すると、変換は中断されます。これらの文字の後のテキストはそれ以上変換できません。
この問題を解決するには、次のコードを使用します。
`$text``=iconv(``"UTF-8"``,``"GBK"``,``$text``);`
お読みのとおり、とても簡単です。gb2312 を使用する代わりに GBK を記述するだけです。
別のメソッドがあり、2 番目のパラメータに //IGNORE を追加して、次のようにエラーを無視します。
`iconv(``"UTF-8"``,``"GB2312//IGNORE"``,``$data``);`
これら 2 つのメソッドには具体的な比較はありません。最初のメソッドの方が良いと思います。 ( gb2312 の代わりに GBK ) 方法の方が優れています。
例は次のとおりです:
<?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'); //得到设定编码的字符串长度 ?>
推奨される学習: 「PHP ビデオ チュートリアル 」
以上がPHP の iconv 関数がエラーを報告した場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。