日本語

操作手順: 各種コード ページでエンコードされたシェープファイルと dBASE ファイルを読み書きする

概要

Esri は、各種コード ページでエンコードされたシェープファイルと dBASE ファイルを Desktop アプリケーションが読み書きできるようにする 'CODE PAGE CONVERSION' 機能を ArcGIS for Desktop (ArcMap、ArcCatalog、ArcToolbox) に実装しています。 dBASE ファイルのコード ページ変換機能 (名称: 'dbfDefault') は、システム レジストリにコード ページ値を指定してアクティブ化します。 これは、ArcInfo Workstation で使用される &CODEPAGE 関数によく似ています。

ArcGIS 10.2.1 より前のバージョンでは、下記の手順を使用して、所要のコード ページ動作を設定できます。 ArcGIS for Desktop 10.2.1 または 10.2.2 がインストールされている場合は、「技術情報記事 42646」に掲載のパッチをダウンロードしてインストールした後で、下記の手順に従ってください。

注意:
各シェープファイル (*.DBF) のヘッダーには、コード ページへの参照が含まれています。 ArcGIS 10.2.1 より前のバージョンでは、使用されているコード ページがユーザーのロケールに対応しています。 たとえば、ユーザーが日本語ロケールを使用している場合、*.DBF ファイルで使用されるコード ページは 'Shft-JIS' になります。

ArcGIS 10.2.1 では、シェープファイル (*.DBF) のコード ページがデフォルトで UTF-8 (UNICODE) に設定されます。 これは、現行の国際化の手法によらず一定であり、データが読み取り可能であることを保証するものです。

FAQ

dbfDefault 設定によって、どのようなことができますか?

システム レジストリにコード ページ値を設定すると、ユーザーはそのコード ページでエンコードされたシェープファイルと dBASE ファイルを読み書きできるようになります。 たとえば、コード ページ レジストリ値を OEM に設定すると、OEM でエンコードされたシェープファイルをエクスポートできます。 また、ユーザーは、コード ページ情報が格納されていないシェープファイルと dBASE ファイルも、ファイルのエンコードに使用されたコード ページがわかっている限り読み取ることができます。

dbfDefault が設定される理由は何ですか?
ArcGIS Desktop でシェープファイルと dBASE ファイルを開くと、Desktop プログラムによって、dBASE ファイルのヘッダーにある LDID (Language Driver ID)、または関連付けられた *.CPG ファイルが確認されます。これらは両方とも、コード ページの定義に使用され、読み取られるファイルのコード ページの決定に役立ちます。 ArcGIS for Desktop は、取得したコード ページ情報に従って、必要な場合は、コード ページ変換を実行することで文字列を表示します。 dBASE ファイルに LDID や *.CPG ファイルが存在しない場合、ファイルは Windows (ANSI/マルチバイト) コード ページでエンコードされたと見なされます。

Desktop プログラムが OEM でエンコードされた dBASE ファイルを読み取るときに、ファイルにコード ページ情報が含まれていないか、LDID や *.CPG ファイルが存在していない場合、文字は正しく表示されません。 この理由は、Desktop プログラムがコード ページ情報を検出できないため、ファイルが ANSI コード ページでエンコードされていると見なすのに対して、ファイルは実際には OEM でエンコードされているからです。 つまり、ArcGIS は OEM ファイルを ANSI でエンコードされているものとして処理するため、その結果、ファイルに格納されている 8 ビット文字が正しく表示されません。

ほとんどのシェープファイルと dBASE ファイルにはコード ページ情報が格納されています。 Microsoft Access 2000 や Excel 2000 などの一部のプログラムは、dBASE ファイルを OEM でエンコードしますが、その LDID にコード ページ情報を挿入しないため、ArcGIS はこれらのファイルを正しく読み取ることができません。 この問題を回避するには、dbfDefault を適切なコード ページに設定してから、コード ページ情報がないファイルを開くことができます。

dbfDefault にはどのように機能がありますか?
システム レジストリの 'dbfDefault' 設定は、シェープファイルと dBASE ファイルのエクスポート先となるコード ページを定義します。 ArcGIS Desktop で作成されるシェープファイルと dBASE ファイルのコード ページは、システム レジストリの 'dbfDefault' 値によって定義されたコード ページにエンコードされます。 たとえば、'dbfDefault' が OEM に設定されている場合、ArcMap、ArcCatalog、ArcToolbox で作成されたシェープファイルと dBASE ファイルは OEM でエンコードされます。 または、'dbfDefault' が ANSI に設定されている場合、シェープファイルと dBASE ファイルは ANSI でエンコードされます。

ただし、これには 1 つの例外があります。ArcCatalog と ArcToolbox でカバレッジから、スペイン語とアラビア語以外の言語でエクスポートされたシェープファイルは、dbfDefault 設定とは関係なく、OEM でエンコードされます。 この理由は、ArcToolbox の [カバレッジ → シェープファイル (Coverage to Shapefile)] では、定義済みのレイヤーが DOS 上で実行されるという ArcInfo Workstation の機能が使用されるため、出力ファイルが常に OEM コード ページまたは DOS コード ページでエンコードされるからです。 ArcCatalog と ArcToolbox でカバレッジから、スペイン語とアラビア語でエクスポートされたシェープファイルは ANSI でエンコードされます。 ArcCatalog と ArcToolbox でカバレッジからエクスポートされたシェープファイルは常に OEM コード ページに含まれます (スペイン語を除く)。

これと同じ論理が、ArcGIS for Desktop に読み込まれるシェープファイルと dBASE ファイルにも適用されます。シェープファイルまたは dBASE ファイルに LDID や *.cpg ファイルが存在しない場合、ArcGIS は、dbfDefault で定義されたコード ページでファイルがエンコードされると見なします。 たとえば、dbfDefault 値が OEM に設定され、dBASE ファイルに LDID および *.cpg ファイルが両方とも存在しない場合、ArcGIS for Desktop は、ファイルが OEM でエンコードされると見なすため、ArcMap と ArcCatalog で 8 ビット文字を表示するためにコード ページ変換を実行します (これは、どちらのアプリケーションも、ANSI コード ページを使用して文字列を表示する Windows プログラムであるためです)。
 
注意:
ユーザーが dbfDefault 値を特定のコード ページに設定している場合、ArcGIS でエクスポートされたすべてのシェープファイルと dBASE ファイルはそのコード ページでエンコードされます。 コード ページ情報を持たないシェープファイルと dBASE ファイルもすべて、そのコード ページに含まれると見なされます。 したがって、タスクが完了したら、dbfDefault 値を再びデフォルト値 (値なし) に設定することが重要です。
dbfDefault を使用できるプログラムにはどのようなものがありますか?
dbfDefault 設定の適用対象となるプログラムは ArcGIS for Desktop のみです。 ArcInfo Workstation や ArcView 3.x などの他のプログラム、および ArcInfo Workstation で使用される '&CODEPAGE' 関数や ArcView 3.x で使用されるコード ページ プロファイルなどの他のコード ページ設定は適用対象外です。

ArcInfo Workstation での動作:
  • &CODEPAGE OEM を指定した ARCSHAPE によって OEM でシェープファイルを作成
  • &CODEPAGE ANSI を指定した ARCSHAPE によって ANSI でシェープファイルを作成
  • &CODEPAGE OEM を指定した INFODBASE によって OEM で dBASE ファイルを作成
  • &CODEPAGE ANSI を指定した INFODBASE によって ANSI で dBASE ファイルを作成
ArcView 3.x での動作:
  • シェープファイルと dBASE ファイルは ANSI コード ページに保存されます。
dbfDefault の適用対象となるデータ形式は何ですか?
コード ページを指定するために dbfDefault 設定で使用できるデータ形式は、シェープファイルと dBASE ファイルのみです。 カバレッジやパーソナル ジオデータベースなど、他のデータ形式は dbfDefault 設定の適用対象外です。

dbfDefault 設定とは関係ない、ArcGIS for Desktop での動作:
  • パーソナル ジオデータベースは Unicode で保存
  • パーソナル ジオデータベース テーブルは Unicode で保存
  • カバレッジは ISO コード ページで保存
  • INFO ファイルは ISO コード ページで保存
  • 交換ファイルは ANSI コード ページで保存
  • テキスト ファイルは ANSI コード ページで保存

手順

下記の手順は、システム レジストリに dbfDefault 値を設定する方法を示しています。 2 つのオプションを記載しています。

警告:
下記の手順には、オペレーティング システムの基本的な部分に対する変更が含まれています。 先へ進む前に、レジストリを含め、オペレーティング システムとファイルのバックアップを作成しておくことをお勧めします。 必要に応じて、コンピューター システムの専門家に相談してください。

Esri では、これらの手順を実行するときに変更を誤った場合の結果について保証いたしません。したがって、十分に注意してご自身の判断で行ってください。

オプション A
  1. 'Common' と 'CodePage' という名前の 2 つのキーをシステム レジストリに追加します。
    キーの追加手順:
    1. [レジストリ エディター] を開きます。[スタート] → [ファイル名を指定して実行] の順にクリックし、「regedit」と入力して [OK] をクリックします。
    2. レジストリ ツリー (レジストリ ウィンドウの左側のウィンドウ) で、'My Computer\HKEY_CURRENT_USER\Software\ESRI' に移動して、レジストリ キー [Desktop 10.x] をクリックします。 Pro については、レジストリ キー [Pro1.0] をクリックします (9.3.1 以前のバージョンでは、'My Computer\HKEY_CURRENT_USER\Software' に移動し、レジストリ キー [ESRI] をクリックします)。
    3. 'Common' という名前の新しいキーを追加します ([編集] メニューで、
      [新規作成] に移動して [キー] を選択し、名前として「Common」を入力して Enter キーを押します)。
    4. 直前に作成したレジストリ キー (Common) をクリックし、'CodePage' という名前の新しいキーを追加します。
  2. 新しい文字列値 'dbfDefault' を [CodePage] キーに追加します。
    文字列値の追加手順:
    1. [CodePage] キーをクリックします。
    2. [編集] メニューで、[新規作成] に移動して [文字列値] を選択します。
    3. 新しい値として「dbfDefault」を入力し、Enter キーを押します。

      新しい [CodePage] キーが次のように表示されます。
      [O-Image] Screenshot of dbfDefault in
       
  3. コード ページ値を入力します。
    1. 直前に追加したエントリを選択します。[(Default)] ではなく [dbfDefault] が選択される必要があります。
    2. [編集] メニューで [変更] をクリックします。
    3. [値] データに、新しいコード ページ値を入力して [OK] をクリックします。
      サポートされているコード ページ識別子 (大文字と小文字は区別されない) のリストを次に示します。
  • OEM コード ページ識別子
437 - 米国
708 - アラビア語 (ASMO 708)
720 - アラビア語 (Transparent ASMO)、アラビア語 (DOS)
737 - ギリシャ語、ギリシャ語 (DOS)
775 - バルト語、バルト語 (DOS)
850 - マルチリンガル ラテン語 1、西ヨーロッパ (DOS)
852 - ラテン語 2、中央ヨーロッパ (DOS)
855 - キリル語
857 - トルコ語、トルコ語 (DOS)
860 - ポルトガル語、ポルトガル語 (DOS)
861 - アイスランド語、アイスランド語 (DOS)
862 - ヘブライ語、ヘブライ語 (DOS)
863 - カナダ フランス語、カナダ フランス語 (DOS)
864 - アラビア語、アラビア語 (864)
865 - ノルディック、ノルディック (DOS)
866 - ロシア語、キリル語 (DOS)
869 - 現代ギリシャ語、現代ギリシャ語 (DOS)
932 - 日本語、日本語 (Shift-JIS)
936 - 中国語 (簡体字): 中華人民共和国、シンガポール
949 - 韓国語 (統合型ハングル コード)
950 - 繁体字中国語: 台湾、香港、中華人民共和国
ALARABI - コード ページを 448 に設定
  • ANSI コード ページ識別子
1250 - 中央ヨーロッパ
1251 - キリル語
1252 - 西ヨーロッパ
1253 - ギリシャ語
1254 - トルコ語
1255 - ヘブライ語
1256 - アラビア語
1257 - バルト言語
1258 - ベトナム語
Big5 - 中国語: 台湾、香港、マカオ
SJIS - 日本語 (コード ページを 932 に設定)
  • ISO コード ページ識別子
88591 - ラテン語 1: 西ヨーロッパ
88592 - ラテン語 2: 中央/東ヨーロッパ
88593 - ラテン語 3: 南ヨーロッパ
88594 - ラテン語 4: 北ヨーロッパ
88595 - キリル語
88596 - アラビア語
88597 - ギリシャ語
88598 - ヘブライ語
88599 - ラテン語 5: トルコ
885910 - ラテン語 6: ノルディック
885911 - タイ語
885913 - リトアニア語
885915 - ラテン語 9: 西ヨーロッパ (ラテン語 1 からのアップグレード)
  • Unicode 値
UTF-8 - コード ページを 65001 に設定
UTF8 - コード ページを 65001 に設定
注意:
シェープファイルを UTF-8 で保存できるようになりました。 ただし、シェープファイルが UTF-8 でエンコードされていることは ArcGIS for Desktop でのみ認識されます。

オプション B

Windows レジストリの変更を、バッチ ファイルを使用して行う方法もあります。
  1. メモ帳で、次のコードを使用して、ChangeCodePage.bat ファイルを作成します。
    コード:
    @ECHO OFF
    IF "%1"=="" GOTO :EOF 
    reg add HKEY_CURRENT_USER\Software\ESRI\Desktop10.3\Common\CodePage /v dbfDefault /t REG_SZ /d %1 /f
    注意:
    変更するシステム上の ArcGIS のバージョンに一致するようにパスを変更します (例:\Desktop10.1)。
  2. 変更するコンピューター上の場所にファイルを保存します。
  3. コマンド プロンプト ウィンドウを開きます (バッチ ファイルを実行するには [管理者として実行] が必要な場合があります)。
  4. バッチ ファイルを実行 (この例では、コード ページを日本語に変更) するために、バッチ ファイルの場所に移動し、次のコマンドを実行します。
    ChangeCodePage SJIS
    これで、レジストリ キーが作成され、コード ページが SJIS に設定されます。
[O-Image]