ホームページ  >  記事  >  データベース  >  Mysql でサポートされる文字セットの概要

Mysql でサポートされる文字セットの概要

黄舟
黄舟オリジナル
2016-12-14 14:19:021227ブラウズ

キャラクタ セットの概要
キャラクタ セットは、Oracle データベースであっても MySQL データベースであっても、キャラクタ セットの選択に問題があり、データベースの作成段階でキャラクタ セットが正しく選択されていない場合に発生します。文字セットの置換は後で必要になる可能性があり、文字セットの置換は比較的高価な操作であり、一定のリスクを伴うため、アプリケーションの開始時に必要に応じて適切な文字セットを選択することをお勧めします。後で不必要な調整を避けるため。
4.2 Mysql でサポートされる文字セットの概要
Mysql サーバーは複数の文字セットをサポートできます (showcharacter set コマンドを使用すると、同じサーバー、同じデータベース、さらには mysql でサポートされているすべての文字セットを表示できます)。同じテーブルでは異なる文字セットを指定できます。同じデータベース内で同じ文字セットしか使用できない Oracle などの他のデータベース管理システムと比較して、MySQL は明らかに柔軟性が優れています。
mysql の文字セットには、文字セット (CHARACTER) と照合規則 (COLLATION) の 2 つの概念が含まれています。文字セットは MySQL が文字列を格納する方法を定義するために使用され、照合規則は文字列を比較する方法を定義します。 MySQL は、30 を超える文字セットで 70 を超える照合ルールをサポートしています。
各文字セットは少なくとも 1 つの校正ルールに対応します。 SHOW COLLATION LIKE 'utf8%'; コマンドを使用すると、関連する文字セットの照合規則を表示できます。
4.3 Unicode の簡単な説明
Unicode はエンコーディング仕様です。ここでは、Unicode エンコードの歴史について簡単に説明します。
ASCII コードから始めましょう。ASCII コードもコーディング標準ですが、ASCII コードは最大 256 文字しか表現できません。中国語やアラビア語などの複雑なテキストの場合、256 文字では明らかに不十分です。 。そのため、さまざまな国や組織が、gb2312、big5 など、自国の言語や文字に準拠した規格を次々に策定してきました。ただし、それぞれが独自の標準を設定するこのアプローチには明らかに多くの欠点があるため、Unicode エンコード仕様が登場しました。
Unicodeも文字エンコード方式ですが、国際機関によって設計されており、世界中のすべての言語のエンコード方式に対応できます。 Unicode の学名は「Universal Multiple-Octet Coded Character Set」であり、UCS と呼ばれます。 UCS は、「Unicode Character Set」の略称として見ることができます。
Unicode には、UCS-2 と UCS-4 という 2 つの標準セットがあり、前者は 2 バイトを使用して文字を表現し、後者は 4 つのワードを使用して文字を表現します。現在一般的に使用されている UCS-2 を例にとると、表現できる文字数は 2^16=65535 で、基本的にすべてのヨーロッパ文字とアメリカ文字、およびほとんどのアジア文字を収容できます。
4.4 適切な文字セットの選択方法
アプリケーションを十分に満足できる限り、小さい文字セットを使用することをお勧めします。文字セットが小さいということは、スペースを節約し、ネットワーク送信バイト数を削減できることを意味すると同時に、記憶スペースが小さくなることにより、間接的にシステムのパフォーマンスが向上するためです。
中国語の文字を保存できる文字セットは utf8、gb2312、gbk、latin1 など多数ありますが、一般的に使用されるのは gb2312 と gbk です。 gb2312 フォント ライブラリは gbk フォント ライブラリよりも小さいため、一部のまれな文字 (例: 洺) は保存できません。そのため、文字セットを選択するときは、これらのリモート文字がアプリケーションに与える可能性と影響を考慮する必要があります。肯定的な答えはできませんが、gbk を選択するのが最善です。
4.5 Mysql 文字セット設定
Mysql の文字セットと照合ルールには、サーバー レベル、データベース レベル、テーブル レベル、フィールド レベルの 4 つのレベルのデフォルト設定があります。それらはさまざまな場所に設置され、さまざまな機能を持っています。
サーバーの文字セットと照合順序は、mysql サービスの開始時に決定されます。
my.cnf で設定できます:
[mysqld]
default-character-set=utf8
、または起動オプションで指定できます:
mysqld --default-character-set=utf8
、またはコンパイル中に指定できます:
。 --with-charset=utf8
サーバー文字セットが特に指定されていない場合、デフォルトで latin1 がサーバー文字セットとして使用されます。上記の 3 つの設定では、文字セットのみを指定し、照合規則は指定しません。このように、文字セットのデフォルト以外の照合規則を使用する必要があります。同時に文字セットを指定します。
「character_set_server」コマンドのような show 変数を使用して、現在のサーバーの文字セットと照合規則をクエリできます。

その他の関連記事については、php 中国語 Web サイト (www.php.cn) に注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。