Unicode エンコード体系間のデータ変換の管理

このトピックでは、サーバー側のデータ保存もデータのやりとりを行うクライアント アプリケーションも Unicode に対応する反面、使用する Unicode エンコード体系が異なる場合に、文字データの整合性を維持する方法について説明します。SQL Server では、UCS-2 エンコード体系で Unicode が格納されます。ただし、多くのクライアントでは、別のエンコード体系 (通常は UTF-8) で Unicode が処理されます。このシナリオは、Web ベースのアプリケーションで頻繁に発生します。

このような場合も、基本的にはあるエンコード体系から別のエンコード体系への変換であるため、「Unicode を使用するサーバーと Unicode 以外を使用するクライアント間のデータ変換の管理」および「クライアントとサーバーのコード ページ間のデータ変換の管理」で説明されているのと同じソリューションの多くを適用できます。サーバーに送信された Unicode 文字列定数の先頭には大文字の N を付ける必要があります。Web ベースのアプリケーションの場合は、クライアント側の HTML ページの META 属性で CHARSET コードを指定します。たとえば、Unicode エンコード体系が UTF-8 の場合は CHARSET = utf-8 を指定します。サーバー側では、Session.CodePage プロパティまたは @Codepage ディレクティブを使用して、クライアントのエンコード体系を指定します。たとえば、codepage=65001 は UTF-8 エンコード体系を指定します。これらの指示に従うと、インターネット インフォメーション サービス (IIS) 5.0 以降のバージョンでは、ユーザー側で操作することなく、UTF-8 から UCS-2 への変換 (および UCS-2 から UTF-8 への変換) がシームレスに処理されます。

Visual Basic のアプリケーションでは、文字列は UCS-2 エンコード体系で処理されます。したがって、Visual Basic のアプリケーションと SQL Server のインスタンスとの間では、エンコード体系の変換を明示的に指定する必要はありません。

参照

概念

Unicode を使用したクライアント側のプログラミング
Unicode を使用するデータベース アプリケーションのプログラミング

ヘルプおよび情報

SQL Server 2005 の参考資料の入手