未分類

Oracle文字コード

投稿日:2018年5月29日 更新日:

Oracle文字コードについて

マルチバイト・キャラクタセット

 

VARCHAR2とNVARCHAR2

CHAR(10)

VARCHAR2(10)

10バイト指定。

データベースキャラクタセットで格納される。

VARCHAR2(10 CHAR)

10文字指定。

データベースキャラクタセットで格納される。

NCHAR(10)

NVARCHAR2(10)

10文字指定。

各国語キャラクタセット(事実上、AL16UTF16)で格納される。各国語キャラクタ・セットに使用できるOracleキャラクタ・セットは、AL16UTF16およびUTF8です。各国語キャラクタ・セットをUTF8に指定するのは、推奨されいない。

AL16UTF16の場合、サロゲートペアを2文字とカウントとする。

 

各国語キャラクタ・セット

 

環境変数NLS_LANG

  • LS_LANGとは、多言語環境の動作設定を規定するパラメータ
  • 設定する値自体は、データベースキャラクタセットと同じにするのではなく、クライアント環境がサポートしているキャラクタセットを指定する。
  • データベースキャラクタセットとNLS_LANGのキャラクタセットが異なる場合は、Oracleは自動的に文字コードの変換を行います。Unicodeを経由してデータベースキャラクタセットからNLS_LANGのキャラクタセットへの文字コード変換が実行される。

 

Oracle Databaseのキャラクタ・セット「UTF8」

Oracle Databaseのデータベース・キャラクタ・セットで使用するUTF-8エンコーディングとしては、UTF8は候補とせず、最新のUnicodeに追随するAL32UTF8を使っておけば問題無し

 

補助文字(追加文字)とサロゲートペア

Unicodeに含まれる文字は、「U+xxxx」という形式のコードポイントで管理されています。コードポイントの範囲はさらに2つに分類されています。1つは、U+0000~U+FFFFの範囲を指す基本多言語面(BMP:Basic Multilingual Plane)、もう1つは、U+10000~の範囲を指す補助(追加)多言語(SMP:Supplementary Multilingual Plane)です。JIS X 0208のすべての文字は基本多言語面に割り当てられていますが、JIS X 0213で追加された文字は、基本多言語面と補助(追加)多言語面のいずれかに割り当てられています。ここで、補助(追加)多言語面に割り当てられた文字を、補助文字(追加文字)と呼びます。

 

 

 

スポンサーリンク

スポンサーリンク

-未分類

執筆者:

関連記事

RaspberryPiの備忘録

GPIO コマンド 説明 gpio readall GPIOの各ポートの状態を表示 gpio -g mode 14 out gpio -g write 14 0 ピンを出力(out)に設定して、0レベ ...

Xamarin.Formsについて

レイアウトの設定について VerticalOptions / HorizontalOptions プロパティ Xamarin.Forms.Viewクラスの LayoutOptions構造体型 プロパテ ...

Objective-Cについて(続)

  セレクタ Objective-C コンパイラは、メソッドを特定する名前をコンパイル時に内部表現に変換します。 この、メソッドの内部表現をセレクタと呼び、メッセージの送受信の裏側では、このセレクタが ...

C#のタスク注意事項

  バックグラウンドタスクで発生した例外 タスクの例外処理に関しては、.NET 4.5で大きな仕様変更が発生している。 バックグラウンドタスクの完了を待機する(awaitキーワードやWait ...

サロゲート(ペア)について

サロゲート(ペア)について ・文字コードに関する覚え書きと実験 サロゲートペアは補助文字を UTF-16 で表現したものであって,UTF-8 では使いません(禁止されています)。UTF-8 で扱うのは ...