1.文字セット
文字は、国別文字、句読点、グラフィック記号、数字など、さまざまな文字や記号の総称です。
文字セットは複数の文字の集まりです。文字セットには多くの種類があり、各文字セットには異なる数の文字が含まれています。一般的な文字セットには、ASCII、GB2312、GBK、GB18030、UniCodeなどがあります。さまざまな文字セットの文字を正確に処理するには、コンピューターがさまざまな文字を認識して保存できるように、文字エンコードが必要です。
キャラクターセット | 説明 |
---|---|
ASCII | 主に現代の英語やその他の西ヨーロッパの言語を表示するために使用される、最も単純な西洋のコーディングスキーム。128文字を表すために1バイトを使用する |
GB2312 | ASCIIと互換性のある国家標準の簡略化された中国語の文字セット。2バイトを使用して、6763の中国語文字を含む7445の記号を表すことができ、ほとんどすべての高頻度の中国語の文字をカバーします。 |
GBK | GB2312の拡張により、従来の文字のサポートが追加され、GB2312と互換性があります。21886文字を表すために2バイトを使用する |
GB18030 | GBKと互換性のある中国語、日本語、韓国語などのエンコードを解決しました。可変バイト表現を使用して、27484文字を表現できます |
Unicode | Unicodeは、世界の650言語のコーディングを統合し、ISO-8859-1と互換性のある国際標準のコーディングされた文字セットです。Unicode文字セットには、UTF-8、UTF-16、UTF-32などの複数のエンコード方法があります。 |
2.MySQLでサポートされている文字セット
show character set;
3.データベースの文字セットを設定します
#创建数据库时指定字符集
create database databaseName character utf8 collate utf8_general_ci;
#查看数据库的字符集
show create database databaseName;
#修改数据库的字符集
alter database databaseName default character set utf8;
4.データテーブルの文字セットを設定します
#创建表时指定字符集
create table tableName
(
...
) default charset = utf8;
#查看数据库的字符集
show create table tableName;
#修改数据表的字符集
alter table tableName convert to character set utf8;
5.フィールド文字セットを設定します
#创建字段时指定字符集
create table tableName(
...,
name varchar(50) not null charset utf8,
...
);
#修改字段字符集
alter table tableName modify name char(10) character set utf8;
6.utf8mb4
MySQLは5.5.3の後にutf8mb4エンコーディングを追加しました。mb4はほとんどのバイト4の省略形であり、Emojiなどの4バイト文字との互換性のために特別に設計されています。MySQLのutf8はutf8mb3のエイリアスであり、utf8mb4はutf8と互換性があり、utf8よりも多くの文字を表すことができます。MySQL8.0は、デフォルトの文字セットとしてutf8mb4を使用します。