【OSS-DB Silver対策】エンコーディングの仕組みと設定
OSS-DB Silver試験対策シリーズ、今回は「エンコーディング」についてです。文字をコンピュータが扱えるバイト列に変換する際のルールや、サーバとクライアントの関係性を正しく理解しましょう。
1. エンコーディングの重要ポイント
【 基本 】 エンコーディングは、文字データの格納や表示に直結する重要な設定です。以下のポイントを整理しておきましょう。
★ 2つの設定:DBに格納する際の「データベースエンコーディング」と、接続側が使う「クライアントエンコーディング」があります。
★ 指定単位:ロケールと同様に、データベース単位で指定します。
★ 互換性:データベースエンコーディングは、指定したロケールと互換性があるものを選ぶ必要があります。
2. 試験対策問題:4択チェック(複数選択)
【 問題 】 PostgreSQLのエンコーディングに関する記述として、適切なものをすべて選びなさい。
問題:エンコーディングの仕様に関する正しい説明の組み合わせを選びなさい。
A. データベースエンコーディングは、データベースごとに個別に指定することができる。
B. データベースエンコーディングとロケールの組み合わせに制限はなく、自由に選択できる。
C. クライアントとサーバで異なるエンコーディングを使用している場合、自動的に変換が行われる仕組みがある。
D. クライアントエンコーディングは、常にデータベースクラスタ全体で共通の設定を使わなければならない。
[ 選択肢 ]
- A と B
- A と C
- B と D
- C と D
3. 正解と解説
【 解説 】
理解のコツ: データベースエンコーディングは CREATE DATABASE 時に指定可能です(Aは正解)。また、サーバとクライアントのエンコーディングが異なる場合、PostgreSQLがその間を適切に変換します(Cは正解)。
注意すべき点: データベースエンコーディングはロケールと互換性が必要です。例えば、ロケールを日本語(ja_JP.UTF-8)にしているのに、エンコーディングを全く無関係なものにすることはできません(Bは誤り)。クライアントエンコーディングは接続ごとに設定可能です(Dは誤り)。
4. まとめ
「DB単位で指定」「ロケールとの互換性」「サーバ・クライアント間の自動変換」。この3要素を抑えておけば、エンコーディングに関する問題はバッチリです。文字化けを防ぐ実務知識としても欠かせないポイントですね!