ホームページ >データベース >mysql チュートリアル >mysqlで文字セットを設定する方法

mysqlで文字セットを設定する方法

PHPz
PHPz転載
2023-05-27 13:38:248519ブラウズ

1. 文字セットの概念

文字セットは、コードと文字の対応関係を標準化し、コンピュータ文字の符号化方式を規定します。異なるデータベース システムでは文字セット設定が異なる場合があり、異なる文字セットには独自の特性と利点があります。 Latin1/Latin7 と比較して、GB2312/GBK/GB18030 は漢字の処理において大きな利点があります。

MySQL では、文字セットとは、データベース、テーブル、列などの文字データをエンコードする方法を指します。平たく言えば、文字セットとは、文字と文字列を保存および処理するために使用される方法を指します。

MySQL でサポートされている文字セットには、主に ASCII、GBK、GB2312、UTF-8、UTF-16、ISO-8859 などが含まれます。その中で、UTF-8 が最もよく使用される文字セットです。 MySQL では、複数の言語をサポートし、柔軟なエンコード形式を備え、スペースを節約し、その他の利点があるためです。

2. MySQL キャラクタ セットの設定方法

  1. MySQL でサポートされているキャラクタ セットをクエリします。

MySQL データベース内ででは、次のコマンドを使用して、データベースでサポートされている文字セットをクエリできます:

SHOW CHARACTER SET;

このコマンドでは、MySQL で使用できるさまざまな文字セットを一覧表示できます。例:

##swe77 ビット スウェーデン語swe7_swedish_ci1ascii US ASCIIascii_general_ci1#ujisEUC-JP 日本語 ujis_japanese_ci3sjisシフト JIS 日本語sjis_japanese_ci2hebrewiso-8859-8 Hebrewhebrew_general_ci1tis620TIS620 タイ語tis620_thai_ci1euckrEUC-KR 韓国語euckr_korean_ci2koi8uKOI8-U ウクライナ語koi8u_general_ci1gb2312GB2312 簡体字中国語gb2312_chinese_ci2ギリシャ語iso-8859 - 7 ギリシャ語greek_general_ci1cp1250Windows Central Europeancp1250_general_ci1##gbk latin5#armscii8ARMSCII-8 アルメニア語 armscii8_general_ci1utf8UTF-8 Unicodeutf8_general_ci 3 UCS-2 UnicodeDOS ロシア語##keybcs2DOS カメニッキー チェコ語-スロバキア語 keybcs2_general_ci1macceMac 中央ヨーロッパmacce_general_ci1macromanMac West Europeanmacroman_general_ci1cp852DOS中央ヨーロッパcp852_general_ci1latin7iso-8859-13 バルト海 latin7_general_ci1utf8mb4UTF-8 Unicodeutf8mb4_general_ci4cp1251Windows キリル文字cp1251_general_ci1#utf16UTF -16 Unicodeutf16_general_ci4utf16leUTF-16LE Unicodeutf16le_general_ci4cp1256Windows アラビア語cp1256_general_ci1cp1257_general_ci##utf32UTF-32 Unicodeutf32_general_ci4binaryバイナリ擬似文字セット#binary1geostd8GEOSTD8 グルジア語geostd8_general_ci1cp932SJIS for Windows 日本語cp932_japanese_ci2eucjpmsUJIS for Windows 日本語eucjpms_japanese_ci 3
  1. データベースの文字セットを設定します

新しい 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 つです。

  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 コマンドはテーブル内の列の文字セットを変更するために使用されます。

  1. 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 コマンドでは、クライアントの文字セットを指定できます。

  1. その他の文字セット設定

あまり一般的ではないデータ ストレージと変換の要件を処理するために、場合によっては、次のことが必要になることがあります。 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
GBK 簡体字中国語 gbk_chinese_ci 2
iso-8859-9 トルコ語 latin5_turkish_ci 1
##ucs2
ucs2_general_ci 2 cp866
cp866_general_ci 1
# #cp1257 Windows Baltic
1

以上がmysqlで文字セットを設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。