CodePage プロパティは、組み込みオブジェクトにおける文字列のエンコード方式を指定します。コード ページは、数字、区切り記号、およびその他の記号を含む文字セットです。コードページは、各言語によって異なります。日本語やヒンディー語などマルチバイト系の文字がある一方で、英語やドイツ語などシングルバイト系の文字もあります。CodePage プロパティには、読み取り/書き込みが許可されます。
Session.CodePage(=CodepageID)
Session.CodePage を明示的に設定すると、セッション内のすべての応答に適用されます。Session.CodePage により、各ページの Response.CodePage が暗黙的に設定されます。Session.CodePage を使用するには、セッションが有効になっている必要があります。
ページ内で Session.CodePage を明示的に設定しない場合、AspCodePage メタベース プロパティによって暗黙的に設定されます。AspCodePage プロパティが設定されていないか、0 に設定されている場合、システムの ANSI コードページによって Session.CodePage が設定されます。IIS 5.0 以前のバージョンのように、@CodePage によって Session.CodePage が暗黙的に設定されることはありません。このように改訂された背景には、@CodePage によってセッション全体のコードページが変更されていたという事情があります。現在では、@CodePage と Response.CodePage は単一の応答にのみ適用され、Session.CodePage はセッション内の応答全体に適用されます。
応答の本体ごとに、設定できるコードページは 1 つだけです。複数あった場合、不適切な文字が表示されます。2 つのページでコードページを明示的に設定しており、一方のページからもう一方のページを #include、Server.Execute、または Server.Transfer で呼び出している場合、通常は、親ページのコードページが有効になります。この唯一の例外は、Server.Execute 呼び出しの親ページで Response.CodePage が明示的に設定されている場合です。この場合には、子ページにおける @CodePage コマンドによって、親ページのコードーページが上書きされます。
スクリプト内のリテラル文字列は、現在でも、@CodePage (存在する場合)、AspCodePage メタベース値 (設定されている場合)、またはシステムの ANSI コードページを使用してエンコードされます。Response.CodePage または Session.CodePage を明示的に設定する場合は、非リテラル文字列をクライアントに送信する前に設定を行います。同一ページでリテラル文字列と非リテラル文字列を使用する場合、@CodePage のコードページが Session.CodePage のコードページと一致していることを確認します。一致していないと、リテラル文字列と非リテラル文字列のエンコード方式が異なってしまい、正しく表示されません。
Web ページのコードページが Web クライアントにおけるシステムの既定値と一致する場合、Web ページでのコードページ設定は必須ではありませんが、設定することをお勧めします。
ページ内でコードページが設定されている場合、Response.Charset も設定する必要があります。コードページの値は、応答を作成する段階で、データのエンコード方式を IIS に指定します。Charset の値は、応答を表示する段階で、データのデコード方式をブラウザに指定します。Response.Charset の CharsetName は、コードページの値と一致していることが必要です。一致していない場合、ブラウザで表示する文字が統一されません。CharsetNames と対応するコードページの値の一覧については、MSDN Web Workshop の Preferred Charset Label および FamilyCodePage の各列を参照してください。
Web ページのファイル形式は、ページ内で使用する @CodePage と一致させる必要があります。Notepad.exe では、ファイルを UTF-8 形式またはシステムの ANSI 形式で保存できます。たとえば、@CodePage が UTF-8 を表す 65001 に設定されている場合、Web ファイルは UTF-8 形式で保存します。@CodePage が 1252 に設定されている場合、Web ファイルは英語かドイツ語システムの ANSI 形式で保存します。システム言語とは異なる言語の ANSI 形式でページを保存する場合、[コントロール パネル] の [地域のオプション] で既定のシステム ロケールを変更できます。たとえば、システム ロケールを日本語に変更した後は、ANSI 形式で保存されるすべてのファイルに日本語のコードページが使用され、日本語のシステム ロケールによってのみ判読可能になります。
複数言語対応の Web サイトなどで、各種のコードページおよび文字セットを使用する Web ページを作成し、テストする場合、テストを実施するクライアント コンピュータには、表示したい各言語の言語パックをインストールしておく必要があります。言語パックは、[コントロール パネル] の [地域のオプション] からインストールします。
Session オブジェクト