キャラクターセット

文字セットに関する重要な知識

知っておくべきことは次のとおりです:

1. 一般的に使用される文字セット

2. データベースで使用する文字セット

英語の文字セット:

QQ截图20161009151258.png

ASCII

ASCII コードは、7 ビットまたは 8 ビットの 2 進数の指定された組み合わせを使用して、128 または 256 個の可能な文字を表します。標準 ASCII コード (基本 ASCII コードとも呼ばれます) は、7 ビットの 2 進数を使用して、すべての大文字と小文字、0 ~ 9 の数字、句読点、およびアメリカ英語で使用される特殊な制御文字を表します。

その内:
0~31 と 127 (合計 33) は制御文字または通信固有の文字 (残りは表示可能な文字) で、制御文字: LF (改行)、CR (キャリッジ リターン)、FF (ページ送り)、DEL(削除)、BS(バックスペース)、BEL(リング)など、通信用の特殊文字:SOH(テキストの先頭)、EOT(テキストの終わり)、ACK(確認)など。値は 8、9、10、13 で、それぞれバックスペース、タブ、ラインフィード、キャリッジリターン文字に変換されます。特定のグラフィック表示はありませんが、アプリケーションに応じてテキスト表示に異なる効果をもたらします。
32~126(計95)は文字(32はスペース)、そのうち48~57は0~9までの10個のアラビア数字です。
番号65から90は26個の大文字の英字、97から122までは26個の小文字の英字、残りは句読点や算術記号などです。

GBK

GBK は GB 2312 エンコードと下位互換性があります。これは、中華人民共和国によって定義された漢字のコンピュータ エンコード仕様です。以前のバージョンは GB2312 です。

Unicode

Unicode (Unicode、Universal Code、Unicode) Unicode は、国際機関によって開発された、世界中のすべてのテキストと記号に対応できる文字コード化スキームです。クロス言語およびクロスプラットフォームのテキスト変換および処理の要件を満たすため。

UTF-8

は、Unicodeの可変長文字エンコーディングであり、ユニバーサルコードでもあります。 UNICODE は ASCII の 2 倍のスペースを占有し、上位バイトの 0 は ASCII には役に立たないためです。この問題を解決するために、Universal Transformation Format、つまり UTF (Universal Transformation Format) と呼ばれるいくつかの中間形式の文字セットが登場しました

実際の作業で使用されるエンコーディング

中国語で一般的に使用される文字セットです。 utf-8とGBKに分かれています。

実際に使用されるものは次のとおりです:

QQ截图20161009151421.png

(図 1) の特性を観察すると、MySQL 文字セットが 3 つの部分で構成されていることがわかります:


1. 文字セット 2. 言語
3.タイプ

最後の bin はバイナリ文字セットを参照し、次の ci は保存および並べ替え時に大文字と小文字を区別しない文字を参照します。

注:

Mysql は、utf-8 を書き込むときに utf8 を書き込みます。中央の水平線は追加しないでください。

(写真1)


QQ截图20161009151437.png

1. MySQL の文字セットについて

MySQL の文字セットのサポート (Character Set Support) には、

文字セット (Character set) とソート方法 (Collat​​ion) の 2 つの側面があります。

MySQL の文字セットのサポートは、サーバー、データベース、テーブル、接続の 4 つのレベルに細分化されています。

MySQL の文字セットの仕様は、データベース、テーブル、および列に使用する文字セットに合わせて調整できます。

2. MySQL 文字セットの表示

2.1. 文字セットの設定の表示

mysql> show variables like 'character_set_%';

QQ截图20161009151450.png


3. MySQL 文字を変更する

を設定します

3.1 サーバーレベルの文字セットを変更します

QQ截图20161009151503.pnga. 一時的な変更

mysql> show variables like 'collation_%';

b. 永続的な変更


/etc/mysql/my.cnfを開き、[mysqld]の後にcharacter-set-server=utf8を追加します

3.2 データベースレベルを変更します

a. 一時的な変更

mysql>SET GLOBAL character_set_server=utf8;

b. 永続的な変更

サーバーレベルを変更するだけです

3.3 テーブルレベルを変更します

mysql>SET GLOBAL character_set_database=utf8;

変更は永続的に有効になります

3.4 列レベルの変更を変更しますexample

mysql>ALTER TABLE table_name DEFAULT CHARSET utf8;

3.5 接続文字セットを変更します

a. 一時的な変更: mysql> SET GLOBALcharacter_set_client;

b. 永続的な変更: /etc/mysql/my.cnf を開き、[ の後にdefault-character-set=utf8 を追加します。クライアント]


学び続ける
||
<?php echo "Hello Mysql"; ?>
  • おすすめコース
  • コースウェアのダウンロード
現時点ではコースウェアはダウンロードできません。現在スタッフが整理中です。今後もこのコースにもっと注目してください〜