2016-01-04 4 views
5

私はutf8mb4フィールドを持ついくつかのMySQLテーブルと、utf8フィールドを持っています。utf8列でutf8mb4接続を安全に使用できますか?

すべてのテーブルのPDO接続文字列にutf8mb4を使用するのは安全ですか?または、すべてをutf8mb4に変換するか、2つの異なるPDO接続を開始する必要がありますか?

答えて

2

短い回答:いいえ、それは安全ではありません。

あなたのデータはutf8mb4文字を持って、あなたは、MySQL utf8文字セットの接続を使用している場合、MySQLのutf8文字セット(3バイト文字まで)のみBMP文字をサポートしているので、あなたが問題に実行されます。

完全なUTF-8サポートのために、すべてのテーブルをutf8mb4に変換することをお勧めします。また、utf8mb4は、後方互換性utf8です。

+1

下位互換性がありますが、InnoDBの最大インデックス可能な長さは255から191文字です。固定長フィールド(例:CHAR)は1文字あたり1バイト多く使用します。 –

+0

@the_nutsもっと詳しい情報はこちら[https://dev.mysql.com/doc/refman/5.7/en/charset-unicode-upgrading.html] – mimimito

関連する問題