1. 文字セットの概念
文字セットは、コードと文字の対応関係を標準化し、コンピュータ文字の符号化方式を規定します。異なるデータベース システムでは文字セット設定が異なる場合があり、異なる文字セットには独自の特性と利点があります。 Latin1/Latin7 と比較して、GB2312/GBK/GB18030 は漢字の処理において大きな利点があります。
MySQL では、文字セットとは、データベース、テーブル、列などの文字データをエンコードする方法を指します。平たく言えば、文字セットとは、文字と文字列を保存および処理するために使用される方法を指します。
MySQL でサポートされている文字セットには、主に ASCII、GBK、GB2312、UTF-8、UTF-16、ISO-8859 などが含まれます。その中で、UTF-8 が最もよく使用される文字セットです。 MySQL では、複数の言語をサポートし、柔軟なエンコード形式を備え、スペースを節約し、その他の利点があるためです。
2. MySQL キャラクタ セットの設定方法
MySQL でサポートされているキャラクタ セットをクエリします。
MySQL データベース内ででは、次のコマンドを使用して、データベースでサポートされている文字セットをクエリできます:
SHOW CHARACTER SET;
このコマンドでは、MySQL で使用できるさまざまな文字セットを一覧表示できます。例:
データベースの文字セットを設定します
新しい MySQL データベースを作成するときに、すべてのテーブルが同じようにデータベースのデフォルトの文字セットを設定できます。データベース内のすべての文字セットはこの文字セットを使用します。
2.1 まず MySQL でサポートされている文字セットを確認します
mysql> SHOW CHARACTER SET;
2.2 新しいデータベースを作成するときに文字を追加しますset settings Set
CREATE DATABASE new_db CHARACTER SET utf8;
or
次の文が書き換えられます。 「デフォルトの文字セット utf8 を使用して、'new_db' という名前の新しいデータベースを作成します。」
ここで、utf8 は、一般的に使用される文字セットの 1 つです。
MySQL テーブルの文字セットを設定します
テーブルがデータを正しく保存および表示できるようにするには、以下を設定する必要があります。テーブルの文字エンコーディング。 MySQLではテーブル作成時にテーブルの文字セットを設定できます。すでに作成されているテーブルは、ALTER コマンドを使用して変更できます。
3.1 テーブル作成時の文字セットの設定
CREATE TABLE new_table (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL DEFAULT '' ,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
テーブルの設定に使用されるストレージ エンジンは ENGINE=InnoDB であり、テーブルの設定に使用されるデフォルトの文字セットCHARSET=utf8です。
3.2 テーブルの文字セットを変更します
ALTER TABLE old_table CONVERT TO CHARACTER SET utf8;
or
ALTER TABLE old_table MODIFY COLUMN name VARCHAR( 50) CHARACTER SET utf8;
このうち、CONVERT TO コマンドはテーブルのデフォルトの文字セットを変更するために使用され、MODIFY COLUMN コマンドはテーブル内の列の文字セットを変更するために使用されます。
MySQL 接続の文字セットを設定する
MySQL サーバーに接続するときに、操作の文字セットを設定することもできます。文字セット設定は「クライアント文字セット」とも呼ばれ、クライアント側で送信されるデータに使用される文字セットを指します。
4.1 現在の接続の文字セットを表示します
mysql> SELECT @@character_set_connection;
4.2 接続の文字セットを変更します
SETcharacter_set_connection = utf8;
or
mysql --default-character-set=utf8 -u root -p
このうち、SET コマンドは、デフォルトの文字セットを変更できます。接続、--default-character -set コマンドでは、クライアントの文字セットを指定できます。
その他の文字セット設定
あまり一般的ではないデータ ストレージと変換の要件を処理するために、場合によっては、次のことが必要になることがあります。 MySQL の追加の文字セット設定を有効にします。この場合、MySQL 構成ファイル (my.cnf ファイル) を管理者権限で変更する必要がある場合があります。変更方法は次のとおりです。
5.1 my.cnf ファイルを検索する
Linux では、my.cnf ファイルは通常、/etc/my.cnf または /etc/mysql に保存されます。 /my.cnf ディレクトリ。
Windows では、my.cnf ファイルは通常、MySQL データベースのインストール ディレクトリに保存されます。
5.2 my.cnf ファイルを変更します
my.cnf ファイルに次のステートメントを追加します:
[mysqld]
character_set_server=utf8
init_connect= 'SET NAMES utf8'
このうち、character_set_server コマンドは、リストされた文字セットを設定するために使用され、init_connect コマンドは、接続の作成時に文字セットを自動的に設定するために使用されます。
Charset | Description | デフォルトの照合順序 | Maxlen |
---|---|---|---|
big5 | Big5 繁体字中国語 | big5_chinese_ci | 2 |
#dec8 | DEC 西ヨーロッパ | dec8_swedish_ci | 1 |
cp850 | DOS 西ヨーロッパ | cp850_general_ci | 1 |
hp8 | HP 西ヨーロッパ | hp8_english_ci | 1 |
koi8r | KOI8-R Relcom ロシア語 | koi8r_general_ci | 1 |
latin1 | iso-8859-1 西ヨーロッパ | latin1_swedish_ci | 1 |
latin2 | iso-8859-2 中央ヨーロッパ | latin2_general_ci | 1 |
7 ビット スウェーデン語 | swe7_swedish_ci | 1 | |
US ASCII | ascii_general_ci | 1 | |
EUC-JP 日本語 | ujis_japanese_ci | 3 | |
シフト JIS 日本語 | sjis_japanese_ci | 2 | |
iso-8859-8 Hebrew | hebrew_general_ci | 1 | |
TIS620 タイ語 | tis620_thai_ci | 1 | |
EUC-KR 韓国語 | euckr_korean_ci | 2 | |
KOI8-U ウクライナ語 | koi8u_general_ci | 1 | |
GB2312 簡体字中国語 | gb2312_chinese_ci | 2 | |
iso-8859 - 7 ギリシャ語 | greek_general_ci | 1 | |
Windows Central European | cp1250_general_ci | 1 | |
GBK 簡体字中国語 | gbk_chinese_ci | 2 | |
iso-8859-9 トルコ語 | latin5_turkish_ci | 1 | #armscii8 |
armscii8_general_ci | 1 | utf8 | |
utf8_general_ci | 3 | ##ucs2 | |
ucs2_general_ci | 2 | cp866 | |
cp866_general_ci | 1 | ##keybcs2 | DOS カメニッキー チェコ語-スロバキア語 |
1 | macce | Mac 中央ヨーロッパ | |
1 | macroman | Mac West European | |
1 | cp852 | DOS中央ヨーロッパ | |
1 | latin7 | iso-8859-13 バルト海 | |
1 | utf8mb4 | UTF-8 Unicode | |
4 | cp1251 | Windows キリル文字 | |
1 | #utf16 | UTF -16 Unicode | |
4 | utf16le | UTF-16LE Unicode | |
4 | cp1256 | Windows アラビア語 | |
1 | # #cp1257 | Windows Baltic | |
1 | ##utf32 | UTF-32 Unicode | utf32_general_ci |
binary | バイナリ擬似文字セット | #binary | |
geostd8 | GEOSTD8 グルジア語 | geostd8_general_ci | |
cp932 | SJIS for Windows 日本語 | cp932_japanese_ci | |
eucjpms | UJIS for Windows 日本語 | eucjpms_japanese_ci | |
以上がmysqlで文字セットを設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。