MySQL は、データの保存と管理に使用されるオープンソースのリレーショナル データベース管理システムです。 MySQL を使用する場合、データをエンコードする必要がある場合があります。エンコーディング変換とは、ある文字セット エンコーディングを別の文字セット エンコーディングに変換することを指します。一般的な文字セット エンコーディングには、UTF-8、GBK、GB2312 などが含まれます。
MySQL では、convert 関数と Cast 関数を使用してエンコード変換を実行できます。
convert 関数は、ある文字セット エンコードから別の文字セット エンコードに文字列を変換できます。構文は次のとおりです。
convert(expr,charset,[binary])
このうち、expr は変換する必要がある文字列、charset はターゲットエンコーディングの文字セットです。 、binary はオプションのパラメータです。変換にバイナリ モードを使用するかどうかを指定するために使用されます。
たとえば、gb2312 でエンコードされた文字列を utf8 でエンコードされた文字列に変換します:
SELECT CONVERT('中国',CHARACTER SET utf8);
実行結果は次のようになります:
+---------------+ | CONVERT('中国',CHARACTER SET utf8) | +---------------+ | 中国 (中文字符) | +---------------+
cast 関数は、文字列をある文字セット エンコーディングから別の文字セット エンコーディングに変換するために使用することもできます。構文は次のとおりです。
cast(expr as type)
このうち、expr は変換する必要がある文字列、type はターゲットの文字セットのエンコーディング タイプです。
たとえば、gbk でエンコードされた文字列を utf8 でエンコードされた文字列に変換します:
SELECT CAST('中国' as CHAR CHARACTER SET utf8);
実行結果は次のとおりです:
+------------------------------------+ | CAST('中国' as CHAR CHARACTER SET utf8) | +------------------------------------+ | 中国 | +------------------------------------+
キャスト関数は次のことができることに注意してください。既存のデータ型を別のデータ型に変換するだけです。データ型そのものが一致しない場合、cast関数による変換はできません。
エンコード変換の関数を使用することに加えて、MySQL 構成ファイル my.ini でエンコード変換を構成することもできます。 my.ini で、character-set-server パラメータと Collation-server パラメータを設定して、MySQL サーバーの文字セットと照合順序を指定する必要があります。たとえば、MySQL サーバーのデフォルトの文字セット エンコーディングを utf8 に変更します:
[mysqld] character-set-server = utf8 collation-server = utf8_general_ci
同時に、データベースとテーブルを作成するときにエンコーディング タイプを指定することもできます。たとえば、utf8 キャラクタ セット エンコーディングと utf8_general_ci 照合順序を使用してデータベースを作成します:
CREATE DATABASE mydatabase DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
utf8 キャラクタ セット エンコーディングと utf8_general_ci 照合順序を使用してテーブルを作成します:
CREATE TABLE mytable ( id INT NOT NULL, name VARCHAR(50) NOT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
概要:
MySQL複数の文字セット エンコーディングをサポートしており、一般的なものには UTF-8、GBK、GB2312 などが含まれます。 MySQL を使用する場合、複数の言語と文字列の正しい配置をサポートするには、正しい文字セット エンコーディングと照合順序を設定する必要があります。エンコード変換には、convert 関数と Cast 関数を使用するか、MySQL 設定ファイル my.ini で文字セットと照合順序を指定できます。
以上がmysqlエンコード変換の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。