あなたの答えは、MySQL設定で構成できます。私の答えでは、文脈から外れたものがあるかもしれませんが、これはあなたのための助けであることもわかっています。
設定方法Character Set
とCollation
。
デフォルトのMySQL文字セットと照合(latin1, latin1_swedish_ci
)を使用してデータを保存するアプリケーションの場合、特別な設定は必要ありません。アプリケーションで別の文字セットまたは照合順序を使用したデータストレージが必要な場合は、いくつかの方法で文字セット情報を構成できます。
- データベースごとに文字設定を指定します。たとえば
utf8
、あるデータベースを使用するアプリケーションにはが必要な場合がありますが、別のデータベースを使用するアプリケーションにはsjisが必要な場合があります。
- サーバー起動時に文字設定を指定します。これにより、サーバーは、他の調整を行わないすべてのアプリケーションに対して指定された設定を使用します。
- ソースからMySQLをビルドする場合は、構成時に文字設定を指定します。これにより、サーバーはすべてのアプリケーションに対して指定された設定を使用します。サーバーの起動時にそれらを指定する必要はありません。
utf8文字セットを設定するための質問の例を次に示します。ここでも照合を設定して、より役立つ(utf8_general_ci
collation`)ようにしています。
データベースごとに文字設定を指定する
CREATE DATABASE new_db
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_general_ci;
サーバー起動時に文字設定を指定する
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
MySQL構成時に文字設定を指定する
shell> cmake . -DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
接続に適用される文字セットと照合システム変数の値を表示するには、次のステートメントを使用します。
SHOW VARIABLES LIKE 'character_set%';
SHOW VARIABLES LIKE 'collation%';
これは長い答えかもしれませんが、すべての方法があり、使用できます。私の答えがあなたに役立つことを願っています。詳細については、http://dev.mysql.com/doc/refman/5.7/en/charset-applications.html