iconv()
PHP のとの違いは何ですかmb_convert_encoding()
? どちらか一方の方がパフォーマンスが良く、高速ですか? (たとえば、特定のエンコーディングの場合)。どのような状況で、どちらか一方が他方よりも好まれるでしょうか?
私がすでに知っていると思うことは次のとおりです。
アイコンv()
- ほとんどの PHP インストールに含まれています。
- 新しい文字セットにマッピングできない文字が見つかった場合、その文字を「類似の」文字に変換するか、無視するかを指定できます。
mb_convert_encoding()
- 通常、php-mbstring 拡張機能をインストールする必要があります。
HTML-ENTITIES
ウェブ 16 進コードとの間で変換して処理できます。
他にも違いはありますか?
ベストアンサー1
iconv()
は、PHP が実行されているシステム C ライブラリにある関数のラッパーにすぎませんiconv()
(PHP が GNU iconv でビルドされている場合は、GNU iconv が使用されます)。したがって、 のパフォーマンスと機能は、iconv()
PHP を実行している場所とビルド方法によって異なります。
mb_convert_encoding()
一方、の実装はPHP (モジュール) ソースに含まれています。実際の変換を処理する libmbfl というライブラリが含まれています。したがって、PHP をどこで実行しているかに関係なく、同じように動作します。サポートされているエンコーディングの一覧は、次のとおりです。http://php.net/manual/en/mbstring.encodings.php
まとめると、mb_convert_encoding()
さまざまなプラットフォームをサポートしたい場合は、 を使用する方が信頼性が高いと言えるでしょう。ただし、iconv()
Linux (例) で使用する場合は、さらに多くのエンコーディングがサポートされます ( を参照iconv --list
)。
当然のことながら、関数の相対的なパフォーマンスはiconv()
、特定の実装によっても異なります。