1. はじめに
MySQL は 5.5.3 以降 utf8mb4 エンコーディングを追加しました。mb4 はほとんどのバイト 4 を意味し、4 バイトの unicode と互換性を持つように特別に設計されています。 utf8mb4 は utf8
のスーパーセットです。エンコードを utf8mb4 に変更する以外、他の変換は必要ありません。もちろん、スペースを節約するには、通常は utf8 を使用するだけで十分です。
2. コンテンツの説明
上で述べたように、utf8 はほとんどの中国語文字を格納できるのに、なぜ utf8mb4 を使用する必要があるのでしょうか? mysql でサポートされている utf8 エンコーディングの最大文字長は 3 であることがわかりました。
などのcharacters.セクションでは、4バイトのワイド文字が見つかった場合に例外が挿入されます。 3 バイト UTF-8 でエンコードできる最大 Unicode 文字は 0xffff で、これは Unicode の Basic Multilingual Plane (BMP) です。言い換えれば、基本的なマルチテキスト プレーンにない Unicode 文字は、Mysql の utf8 文字セットを使用して保存することはできません。絵文字表現 (絵文字
は特別な Unicode エンコーディングであり、iOS や Android 携帯電話で一般的です)、多くの珍しい漢字、および新しい Unicode 文字などを含みます (utf8 には
## がありません) #ポイント)。通常、コンピュータは文字を保存するときに、さまざまな文字の種類とエンコード方法に応じて記憶領域を割り当てます。例えば、次のようなエンコード方法です;
① ASCIIエンコードでは、英字1文字(大文字・小文字問わず)は1バイト、漢字1文字は2バイトとなります。空間。 2 進数シーケンスは、コンピューターにデジタル単位として保存される場合、通常は 10 進数に変換された 8 ビットの 2 進数になります。最小値は 0、最大値は 255 です。
は基本的なマルチプレーン Unicode 文字に含まれていないため、MySQL で utf8 ストレージを使用することができません。その後、MySQL は utf8 文字を拡張し、utf8mb4 エンコーディングを追加しました。
したがって、データベースの設計時にユーザーが特殊なシンボルを使用できるようにしたい場合は、データベースの互換性を高めるために、utf8mb4 エンコーディングを使用してそれを保存するのが最善ですが、この設計では
結果的にコストが増加する 保管スペースがたくさんある。
以上がわかりやすい! utf8とutf8mb4の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。