3

今のところ、PHPではマルチバイト文字列の処理はそれほど簡単ではありません。たとえば、次の文字列の長さを取得したいとします。ä

strlen('ä'); // 2, because ä equals 2 bytes
mb_strlen('ä', 'UTF-8'); // 1
iconv_strlen('ä', 'UTF-8'); // 1

どの関数を使用する必要がありますか?mb_*またはiconv_*?なんで?エンコーディングがUTF-8に限定されない可能性があることを考慮してください。

事前にThx!

4

1 に答える 1

5

このパワーポイントのプレゼンテーションをご覧ください。

http://www.nyphp.org/content/presentations/smallworld/April2006-nyphp-Presentation.ppt

一言で言えば、iconvはより多くのエンコーディングをサポートしますが、移植性は低くなります。

プレゼンテーションから:

PHPは、iconvとmbstringの2つの拡張機能でマルチバイトをサポートしています。

  • iconvは外部ライブラリを使用します(より多くのエンコーディングをサポートしますが、移植性は低くなります)
  • mbstringには、PHPにバンドルされたライブラリがあります(エンコーディングは少なくなりますが、移植性は高くなります)
于 2009-07-04T19:00:03.170 に答える