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

phpおよびmysqlでutf8mb4を使用する

    MySQLのutf8 エンコーディングはではありません 実際のUTF-8。これはUTF-8に似たエンコーディングですが、UTF-8がサポートするもののサブセットのみをサポートします。 utf8mb4 実際 UTF-8。この違いは、内部実装の詳細です。 MySQLの。どちらもPHP側ではUTF-8のように見えます。 utf8を使用するかどうか またはutf8mb4 、PHPはどちらの場合も有効なUTF-8を取得します。

    確認する必要があるのは、接続エンコーディング PHPとMySQLの間はutf8mb4に設定されています 。 utf8に設定されている場合 、MySQLはすべての文字をサポートするわけではありません。この接続エンコーディングは、mysql_set_charset()を使用して設定します 、PDOcharset DSN接続パラメータまたは選択したデータベースAPIに適したその他の方法。

    mb_internal_encoding $encodingのデフォルト値を設定するだけです パラメータすべてmb_* 関数が持っています。 MySQLとは何の関係もありません。

    UTF-8とUTF-32は、文字のエンコード方法が異なります。 UTF-8は最小を使用します 1文字あたり1バイト、最大4バイト。UTF-32常に すべての文字に4バイトを使用します。 UTF-16は最小2バイト、最大4バイトを使用します。
    可変長のため、UTF-8には少しオーバーヘッドがあります。 UTF-16で2バイトにエンコードできる文字は、UTF-8では3または4を取ることができます。一方、UTF-16はlessを使用しません。 2バイトより。アジアのテキストを大量に保存している場合、UTF-16はより少ないストレージを使用する可能性があります。テキストのほとんどが英語/ASCIIの場合、UTF-8はより少ないストレージを使用します。 UTF-32は常に最も多くのストレージを使用します。



    1. SQLServerのストアドプロシージャでテキストを検索する

    2. mysql_real_escape_stringの後にストリップスラッシュを使用する

    3. 選択した結果を挿入スクリプトに変換する-SQLServer

    4. SQLServerでDELETEパススルークエリを実行する方法