PHP の iconv() と mb_convert_encoding() の違いは何ですか? 質問する

PHP の iconv() と mb_convert_encoding() の違いは何ですか? 質問する

iconv()PHP のとの違いは何ですかmb_convert_encoding()? どちらか一方の方がパフォーマンスが良く、高速ですか? (たとえば、特定のエンコーディングの場合)。どのような状況で、どちらか一方が他方よりも好まれるでしょうか?

私がすでに知っていると思うことは次のとおりです。

アイコンv()

  1. ほとんどの PHP インストールに含まれています。
  2. 新しい文字セットにマッピングできない文字が見つかった場合、その文字を「類似の」文字に変換するか、無視するかを指定できます。

mb_convert_encoding()

  1. 通常、php-mbstring 拡張機能をインストールする必要があります。
  2. 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()、特定の実装によっても異なります。

おすすめ記事