# 日本語 Compaq OpenVMS
概説書

前へ | 次へ | 目次 | 索引

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

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

# 5.1 標準版 Compaq 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 ボリューム構造には，以下の機能があります。

- 長いファイル名のサポート

- ファイル名に使用できる文字の種類の拡大

- ファイル名の大文字と小文字の区別の保存

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

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

# 5.2 日本語 Compaq OpenVMS によるファイル名の拡張

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

- 従来形式のファイル名

  半角の A〜Z，0〜9，$，_，およびハイフンとピリオドから成る形式。

  最大長はファイル名と拡張子それぞれ 39 文字までです。

- ISO 8859-1 コードセットによるファイル名

  ファイル名と拡張子あわせて最大 236 文字までの，ASCII および ISO Latin-1 文字によるファイル名。

  ピリオドは複数指定できますが，最低でも１つは必要です。エスケープ文字 (^) を用いることで，スペースや一部の特殊記号もファイル名に使うことができます。

  注意 日本語 Compaq OpenVMS では ISO Latin-1 文字はサポートしません。 ASCII 文字部分のみのサポートとなります。

- 16 進数表現によるファイル名

  漢字やキリル文字のように，ISO 8859-1 コードセットに含まれない文字をファイル名に使用するために，16 進数によって文字を表す形式。

  ファイル名に ISO 8859-1 コードセットを使用できる場所なら，どこにでも使用することができます。ファイル・システム内部では Unicode ファイル名に変換されます。

- Unicode によるファイル名

  ファイル名と拡張子あわせて最大 118 文字までの，Unicode 文字列によるファイル名。

  ピリオドは複数指定できますが，最低でも１つは必要です。スペースや一部の記号もファイル名に使うことができます。

- Super DEC 漢字コードセットによるファイル名

  ファイル名と拡張子あわせて最大 118 文字までの，Super DEC 漢字コードセットによるファイル名。

  日本語 Compaq OpenVMS V7.3 では，標準の文字コードセットである DEC 漢字 2000 コードセットはファイル名に使用することはできません。

  ファイル・システム内部では Unicode として ODS-5 ボリュームに格納されています。ファイル・システム内部では Unicode ファイル名に変換されます。

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

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

- RMS API

  以下の RMS API では Super DEC 漢字コードセットを用いて，日本語のファイル名を持つファイルにアクセスすることができます。

  $CREATE | $DISPLAY | $ENTER | $ERASE
  $OPEN | $PARSE | $REMOVE | $RENAME
  $SEARCH |  |  |

- DCLコマンド

  ★日本語ファイル名をサポートするDCLコマンド★

  日本語 Compaq OpenVMS では，以下の DCL コマンドおよび API で日本語ファイル名を正常に処理できます。

  1. バックアップ関係

     - BACKUP コマンド

     - BACKUP API

  2. デフォルト・ディレクトリ関係

     - SET DEFAULT および SHOW DEFAULT コマンド

     - SHOW PROCESS コマンド

     - $SETDDIR システム・サービス

  3. ACL関係

     - SET SECURITY および SHOW SECURITY コマンド

     - SET FILE/ACL および SET ACL コマンド

  ★その他の DCL コマンド★

  標準版 Compaq OpenVMS の提供する DCL コマンドで， Super DEC 漢字コードセットを用いて日本語のファイル名を持つファイルを作成，操作，削除することができます。

  【例】

         $ COPY PUBDISK:[営業３課]企画書.TXT SYS$LOGIN:新企画書.案１

  注意 日本語 Compaq OpenVMS では，標準版 Compaq OpenVMS V7.2 の DCL コマンドで日本語ファイル名が完全に正常に動作することを保証しません。一部のDCLコマンドでは日本語ファイル名が正しく表示されないなどの問題が発生する場合があります。

- 日本語ユーティリティ

  日本語 Compaq OpenVMS の提供する日本語ユーティリティでは，日本語ファイル名を正常に処理できます。日本語ユーティリティについての詳細は，『日本語ユーティリティ 利用者の手引き』を参照してください。

  【例】

         $ EDIT/XTPU 新企画書.案１

# 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 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が用意されています。

- JSY$RMS_SET_ENCODING

  RMSファイル名コンバータを有効または無効する。

- JSY$RMS_GET_ENCODING

  現在のファイル名コンバータの状態を取得する。

- JSY$RMS_LIST_ENCODING

  システムにインストールされているファイル名コンバータの名前を取得する。

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

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

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

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

日本語 OpenVMS V7.3 では，V7.2 および V7.2-1 と異なり，サブプロセスは親プロセスのファイル名コンバータの状態を引き継ぎます。そのためファイル名コンバータが有効になっているプロセスから 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 では以下の文字をファイル名として使用できます。

- JIS Roman 文字
  ただし，以下の文字を除く

  > C0 制御コード (0x00 以上，0x1F 以下)
  > 二重引用符 (")
  > アスタリスク (*)
  > ￥記号 (￥)
  > コロン (:)
  > 左および右の山括弧 (<>)
  > スラッシュ (/)
  > 疑問符 (?)

- 全角文字

- 半角カナ

- C1 制御コード (0x80 以上，0x9F 以下)

- 16 進数表現で示される上記以外の文字

# 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. ユーザ定義文字

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

5. JIS 補助漢字

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

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

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

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

日本語 Compaq OpenVMS V7.3 では，標準版 Compaq OpenVMS V7.3 と同様に，最大 118 文字の Unicode ファイル名をサポートしています。

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

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

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

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

       (全角文字 + 半角カナ) ×６＋半角文字≦ 4095              (単位：バイト)

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

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

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

前へ | 次へ | 目次 | 索引