[ 前のページ ] [ 次のページ ] [ 目次 ] [ 索引 ] [ DOC Home ]

5 日本語ファイル名サポート

この章では,標準版OpenVMSのサポートするファイル名と,日本語OpenVMS のサポートする日本語ファイル名について説明します。

5.1 標準版OpenVMSにおけるファイル・システムの拡張

Extended File Specificationsは,ファイル名に使える文字がUnicodeに拡張され,OpenVMS の従来のバージョンに存在するさまざまなファイル名の制約を緩和するファイル処理環境です。Extended File Specifications は,Advanced Serverを使用する環境において,OpenVMSシステムとWindows NT システムの両方で,一貫性のあるファイル処理を可能します。

Extended File Specificationsは,On-Disk Structure Level 5 (ODS-5) をインプリメントしています。この新しいボリューム構造は,拡張ファイル名を持つファイルを作成し, 格納するための基礎となります。ODS-5ボリューム構造には, 以下の機能があります。

日本語OpenVMS V7.2の日本語ファイル名は,このODS-5ボリューム構造でサポートされているUnicode ファイル名を利用しています。従って,日本語ファイル名のサポートはODS-5 ボリューム構造のみに限られます。


注意
ODS-5ボリューム構造についての詳細は, 『OpenVMS Extended File Specificationsの手引き』を参照してください。

5.2 日本語OpenVMS V7.2によるファイル名の拡張

Extended File SpecificationによってサポートされるODS-5ボリューム構造によって, 日本語OpenVMS V7.2では,以下の形式のファイル名をサポートしています。

5.3 Super DEC漢字コードセットによる日本語ファイル名

日本語OpenVMS V7.2では,以下の場所でSuper DEC漢字コードセットを用いて, ファイル名に日本語を使用することができます。

5.4 日本語ファイル名の設定

従来のアプリケーションとの互換性のために,デフォルトでは日本語ファイル名は無効に設定されます。 ファイル名にSuper DEC漢字コードセットを使用するためには,RMS 設定を切り替える必要があります。

5.4.1 JSY$CONTROLユーティリティ

ファイル名にSuper DEC漢字コードセットを使用するためには,以下のコマンドを入力して,RMS の拡張機能であるファイル名コンバータを有効にします。

        $ JSY$CONTROL:==$SYS$SYSTEM:JSY$CONTROL.EXE
        $ JSY$CONTROL SET RMS/FILENAME=SDECKANJI

ファイル名コンバータを有効にすると,RMSを経由するファイル名はすべてSuper DEC 漢字コードセットで入出力されます。またDCLのファイル名解析スタイルもExtended に切り替わります。


注意
DCLのファイル名解析スタイルについての詳細は, 標準版OpenVMS V7.2のマニュアル『OpenVMS Extended File Specificationsの手引き』を参照してください。

ファイル名コンバータを無効にするためには,以下のコマンドを入力します。

        $ JSY$CONTROL SET RMS/FILENAME=DEFAULT

ファイル名コンバータを無効にすると,ファイル名にSuper DEC漢字コードセットを使用することはできません。 またDCLのファイル名解析スタイルもTraditional に切り替わります。

現在のファイル名コンバータの状態を知るためには,以下のコマンドを入力します。

        $ JSY$CONTROL SHOW RMS

ファイル名コンバータが有効の場合は,以下のように表示されます。

        %JSY-I-RMSFNM, Current filename mode is "sdeckanji".

ファイル名コンバータが無効の場合は,以下のように表示されます。

        %JSY-I-RMSFNM, Current filename mode is "DISABLE".

5.4.2 アプリケーションによる日本語ファイル名の設定

ファイル名にSuper DEC漢字コードセットを使用するかどうかを,アプリケーションから制御するために, 以下の新しいAPIが用意されています。

詳しくは『日本語ライブラリ 利用者の手引き』を参照してください。

5.4.3 日本語ファイル名の設定の単位

ファイル名にSuper DEC漢字コードセットを使用するかしないかは,プロセス単位に設定されます。 日本語OpenVMS V7.2では,標準版OpenVMSと同様に, プロセス生成時にはISO Latin-1コードセットを使用します。

ユーザはJSY$CONTROLユーティリティまたはAPIを使用することで,必要に応じてプロセスの使用するファイルをSuper DEC 漢字コードセットに設定することができます。

また日本語OpenVMS V7.2では,サブプロセスは親プロセスのファイル名コンバータの状態を引き継ぎません。 そのためSPAWNコマンド等でサブプロセスを起動した場合には, 必要に応じてJSY$CONTROLユーティリティを用いるなどして, ファイル名コンバータを有効にしてください。

5.4.4 ファイル名コンバータの非同期切り換えの禁止

ファイル名コンバータの有効/無効は,プロセス単位に設定されます。したがって, マルチスレッド環境で不用意にコンバータを切り換えると他のスレッドの動作に影響を与えます。 特にRMSによるファイル・アクセスの実行中に切り換えを行うと, 予期せぬ障害が発生する場合があります。

ファイル名コンバータの切り換えは,必ずスレッド間の同期をとってから行ってください。

5.4.5 16進数表現による日本語ファイル名

ファイル名コンバータを無効にしている場合は,ファイル名の指定にSuper DEC 漢字コードセットを使うことはできません。ファイル名コンバータを無効にしている場合で, 日本語ファイル名を使用するには,4桁の16 進数を用いてUnicodeの文字コードを指定します。


注意
ファイル名コンバータを無効にしている状態で, ファイル名にSuper DEC漢字コードを入力すると,RMS はそれをISO Latin-1コードとみなして,ファイルにアクセスしようとします。 その結果,エラーが発生したり,または正常動作しているように見えても実際には日本語ではないファイル名が作成されたりする場合があります。

【例】

ファイル名 ファイル名コンバータ有効 ファイル名コンバータ無効
漢字.TXT 漢字.TXT ^U6F22^U5B57.TXT

ファイル名の16進数表現の詳細は,『OpenVMS Extended File Specificationsの手引き』を参照してください。

5.5 日本語ファイル名に使用できる文字

ファイル名コンバータを有効にして,ファイル名にSuper DEC漢字コードセットを使用している場合,RMS では以下の文字をファイル名として使用できます。

5.6 ファイル名変換規則

ファイル名コンバータを有効にすると,RMSでは入出力されるファイル名をSuper DEC 漢字コードとみなし,ODS-5ボリュームでサポートされるUnicode に変換します。変換規則は以下のとおりです。

  1. 半角文字(JIS Roman文字)

    上位8 bitにゼロを追加し,Unicodeの0x0020〜0x007Eに変換されます。 ファイル名がこれらの文字だけから成る場合は,日本語ファイル名とはみなされないため,Unicode ではなくISO 8859-1に変換されます。

  2. JIS第一水準および第二水準文字

    つぎの例外を除き,Unicodeの対応する文字に変換されます。

    b-1. ISO Latin-1に変換される文字

    以下の文字はISO Latin-1文字とみなされるため,ファイル名がこれらの文字だけから成る場合は,Unicode ではなくISO 8859-1に変換されます。

    文字 SDK Unicode
    ´ A1AD 00B4
    ¨ A1AE 00A8
    ± A1DE 00B1
    × A1DF 00D7
    ÷ A1E0 00F7
    ° A1EB 00B0
    § A1F8 00A7
    A2F9 00B6

    これらの文字を日本語ファイル名として使用するためには,他の日本語文字とともに使用する必要があります。

    b-2.半角文字と重複する全角文字

    全角アルファベットなど半角文字にも同じ文字があるものは,Unicode では0xFF01〜0xFF9Fに変換されます。一部の文字は例外的に0xFFxx以外に変換されます。

    文字 SDK Unicode
    A1C9 201D
    A1C7 2019

  3. 半角カナ

    半角カナはUnicodeの0xFF61〜0xFF9Fに変換されます。

  4. ユーザ定義文字

    日本語OpenVMS V7.2ではサポートしていません。ファイル名にユーザ定義文字を使用した場合の動作は不定です。

  5. JIS補助漢字

    日本語OpenVMS V7.2ではサポートしていません。ファイル名にJIS補助漢字を使用した場合の動作は不定です。

  6. IBM選定文字,NEC選定文字

    日本語OpenVMS V7.2ではサポートしていません。ファイル名にこれらの文字を使用した場合の動作は不定です。

5.7 日本語ファイル名の最大長

標準版OpenVMS V7.2では,最大118文字のUnicodeファイル名をサポートしていますが, 日本語OpenVMS V7.2では日本語Advanced Server V7.2と同様, 最大72文字までのファイル名をサポートします。

RMSを使用した場合の日本語ファイル名の最大長は,ファイル指定に含まれる文字の種類によって変化します。 ファイル指定にはデバイス名とディレクトリ指定, ピリオド,セミコロンとバージョン番号が含まれます。

5.7.1 新しいRMS APIによる日本語ファイル名の最大長

RMS APIでは,標準版OpenVMS V7.2のRMSでサポートされる新しいデータ構造であるNAML を使用する場合,Super DEC漢字コードセットを用いて,最大72 文字までの日本語ファイル名をサポートします。

ファイル名にSuper DEC漢字コードを使用する場合,ファイル指定に含めることのできる文字列の長さは以下のとおりです。

        (全角文字 + 半角カナ) × 6 + 半角文字 ≦ 2048

したがって,ディレクトリに非常に長い日本語を使用した場合や,ネストが非常に深い場合などは, ファイル名に使用できる日本語の文字数が制限されます。

ファイル指定が上記の計算式を満たす場合は,NAMLデータ構造を用いて, 最大72文字までのファイル名を使用することができます。


注意
NAMLデータ構造およびRMSの拡張に関する詳細は, 『OpenVMSExtended File Specificationsの手引き』を参照してください。

5.7.2 従来のRMS APIによる日本語ファイル名の最大長

従来のデータ構造であるNAMを使用して,ファイル名にSuper DEC漢字コードセットを使用する場合, ファイル指定に含めることのできる文字列の長さは以下のとおりです。

        (全角文字 + 半角カナ) × 6 + 半角文字 ≦ 255

したがって,ファイル指定に含めることのできる全角文字の長さは最大42 文字までとなります。


注意
42文字を越える長さのファイル指定を使用した場合,RMS はファイル指定全体をFID形式に変換して処理を継続しますが, これは日本語OpenVMS V7.2のサポート範囲外です。

5.7.3 デフォルト・ディレクトリの最大長

デフォルト・ディレクトリを日本語のディレクトリに変更する場合,ファイル指定には最大42 文字の全角文字を含めることができます。デフォルト・ ディレクトリの指定に含めることのできる文字列の長さは以下のとおりです。

        (全角文字 + 半角カナ) × 6 + 半角文字 ≦ 255

ただしデバイス名を意味する文字列は,上記の計算式から除きます。デバイス名の長さはデフォルト・ ディレクトリの最大長に影響しません。


注意
デフォルト・ディレクトリに含まれる全角文字および半角カナの文字数は, ファイル名に使用できる日本語の文字数に影響を与えます。 長い日本語は,なるべくデフォルト・ディレクトリには使用しないでください。

5.8 RMS以外のAPIでの日本語ファイル名の使用

以下のAPIはSuper DEC漢字コードセットによる日本語ファイル名を使用できます。RMS ファイル名コンバータが有効の場合,これらのAPIはファイル名をSuper DEC 漢字コードで入出力します。

以下のAPIはファイル名にUnicodeを使用できます。

RMSファイル名コンバータは,$QIOの使用するファイル名に影響を与えません。$QIO は常に従来形式,ISO 8859-1,Unicodeのいずれかの形式でファイル名を入出力します。


注意
$QIOの拡張に関する詳細は, 『OpenVMSExtended File Specificationsの手引き』を参照してください。


[ 前のページ ] [ 次のページ ] [ 目次 ] [ 索引 ] [ DOC Home ]