1

つまり、完全にPHP4で何かをコーディングしている場合はどうでしょうか。または、マルチバイト文字列の文字数をカウントする代わりに、カスタム関数またはクラス/拡張機能を使用する必要がありますか?

私が見つけられる唯一の違いは、mb_stringが不正なシーケンスを削除するのに対し、iconv_strlenは削除しないことです。

4

1 に答える 1

2

プレーンstrlenのドロップイン置換が必要な場合は、常にintを返すmb_strlenを使用します。これは非常に議論の余地がありますが(mbの許容範囲に対するiconvの正確さ)、実際にはmb_strlenのフォールトトレランスの方が適しています。php.iniまたはアプリケーションの中央の場所でmbを目的のエンコーディングに構成していることを確認してください。

PHPでのUnicodeサポートは悪い場所にあり、多くの落とし穴と例外に注意する必要があります。いくつかの大規模なアプリケーションとそのユーザーデータをUTF-8に完全に切り替えたので、私はあなたに川を泣かせることができました。

于 2010-01-13T13:01:42.430 に答える