sql >> データベース >  >> RDS >> Mysql

UTF8ワークフローPHP、MySQLの要約

    • mb_internal_encoding('UTF-8') それ自体は何もしません。各mb_のデフォルトのエンコーディングパラメータを設定するだけです。 働き。 mb_を使用していない場合 機能、それは何の違いもありません。もしそうなら、$encodingを渡す必要がないように設定するのは理にかなっています 毎回個別にパラメータを設定します。
    • IMO mb_detect_encoding 未知のテキストのエンコーディングを正確に検出することは基本的に不可能であるため、ほとんど役に立ちません。テキストのブロブに関する仕様があるため、テキストのブロブがどのエンコーディングであるかを知っているか、エンコーディングが指定されているヘッダーやメタタグなどの適切なメタデータを解析する必要があります。
    • mb_check_encodingを使用する テキストのブロブが、それが含まれていると予想されるエンコーディングで有効かどうかを確認するには、通常は十分です。そうでない場合は、破棄して適切なエラーをスローします。
    • について:

      マルチバイト文字を含む文字列を操作している場合は、はい、mb_を使用する必要があります 間違った結果が得られないようにする機能。コア文字列関数はバイトレベルでのみ機能し、文字レベルでは機能しません。文字レベルは、文字列を操作するときに通常必要なものです。

    • utf8_general_ciutf8_bin 照合する場合にのみ違いが生じます つまり、文字列の並べ替えと比較です。 utf8_binを使用 データはバイナリ形式で扱われます。つまり、同一のデータのみが同一です。 utf8_general_ciを使用 いくつかのロジックが適用されます。 「é」は「e」と一緒に並べ替えられ、大文字は小文字と同じと見なされます。


    1. PostgreSQL 9.5以降のJSON配列への追加(プッシュ)と削除

    2. クラス'mysqli_connect'が見つかりません

    3. 作成時のみのMySQLタイムスタンプ

    4. 列ではなく行形式でクエリを返す