-
mb_internal_encoding('UTF-8')
それ自体は何もしません。各mb_
のデフォルトのエンコーディングパラメータを設定するだけです。 働き。mb_
を使用していない場合 機能、それは何の違いもありません。もしそうなら、$encoding
を渡す必要がないように設定するのは理にかなっています 毎回個別にパラメータを設定します。 - IMO
mb_detect_encoding
未知のテキストのエンコーディングを正確に検出することは基本的に不可能であるため、ほとんど役に立ちません。テキストのブロブに関する仕様があるため、テキストのブロブがどのエンコーディングであるかを知っているか、エンコーディングが指定されているヘッダーやメタタグなどの適切なメタデータを解析する必要があります。 -
mb_check_encoding
を使用する テキストのブロブが、それが含まれていると予想されるエンコーディングで有効かどうかを確認するには、通常は十分です。そうでない場合は、破棄して適切なエラーをスローします。 -
について:
マルチバイト文字を含む文字列を操作している場合は、はい、
mb_
を使用する必要があります 間違った結果が得られないようにする機能。コア文字列関数はバイトレベルでのみ機能し、文字レベルでは機能しません。文字レベルは、文字列を操作するときに通常必要なものです。 -
utf8_general_ci
対utf8_bin
照合する場合にのみ違いが生じます つまり、文字列の並べ替えと比較です。utf8_bin
を使用 データはバイナリ形式で扱われます。つまり、同一のデータのみが同一です。utf8_general_ci
を使用 いくつかのロジックが適用されます。 「é」は「e」と一緒に並べ替えられ、大文字は小文字と同じと見なされます。