アラビア語フィールドのあるファイルGeoDataBaseを、アラビア語と英語の両方を正しく表示するQGISとArcMapの両方で正常に開くUTF-8エンコーディングのシェープファイルに変換するために使用したプロセスの詳細の下(エクスポートまたは読み取りに拡張機能を使用せずに):
- 基本的な考え方は次のとおりです。FGDBから.dbfを含むシェープファイルを(間違ったエンコーディングで)エクスポートし、テキストと同じレイヤーの属性テーブルをエクスポートし(正しいエンコーディング、UTF-8)、別のプログラムを使用しますシェープファイルの.dbfの内容を適切なUTF-8データフィールドに置き換え、.dbfをUTF-8エンコーディングで保存します。次に、各シェープファイルに.cpgファイルを追加して、.dbfの新しいエンコーディングをArcGISに通知します。手順:
1)FGDBからArcMapにレイヤーを追加します(10.1を使用しましたが、エンコードビットがArcの外部で後で発生するため、以前のバージョンで動作しない理由はまったくありません)。エクスポートするには、レイヤーを右クリックして[データ]-> [データのエクスポート]を選択し、エクスポートダイアログのフォルダーボタンをクリックして[保存]ダイアログを表示し、出力形式として[シェープファイル]を選択します。
1b)上記の代替方法:ArcCatalogでFGDBに移動し、右クリックして、[エクスポート]-> [シェープファイルへ(複数)]を選択し、FGCB全体を1回の操作でシェープファイルでいっぱいのフォルダとしてエクスポートします。
2)これで、アラビア語のスクリプトがあるはずの場所で、意味不明なシェープファイルのセットができました(私のマシンでは、文字の代わりに疑問符が表示されました)。Excelなどで開いたシェープファイル自体の.dbf部分は、アラビア語ではなくちらつきがあります。これは、GISプログラムの単なる表示の問題ではなく、.dbfファイル自体にアラビア語の文字が含まれていないということです。まだ役に立たない。
3)ArcMapで、FGDBからレイヤーの属性テーブルを開きます。テーブルが開き、英語とアラビア語の両方が適切に表示されます(そのため、FGDBが最初に使用された理由です)。[属性テーブル]ウィンドウの[テーブルオプション]メニューで[エクスポート]を選択し、[データのエクスポート]ダイアログで[出力フォルダー]ボタンをクリックして[データの保存]ダイアログに移動します。これで、英語とアラビア語の両方が適切にエンコードされた、UTF-8としてエンコードされたコンマ区切り文字付きのメモ帳で開くテキストファイルができました(この時点でアラビア語はメモ帳で正しく表示されるはずです)。
次に、その情報をシェープファイルの.dbf部分に取り込みます!
4)LibreOffice Calcを開きます。これは、シェープファイルの.dbfファイルを開くために、.dbfファイルを簡単に開いて操作し、保存する無料のオープンソースExcelクローンです。
ところで、この場合、イデオロギー上の理由でMS Officeの代わりにLibreOfficeを使用していませんが、Excelで.dbfファイルを保存する方法がわからないためです。 Calcで.dbfファイルを開いて変更した後に[保存]を押すと、Excelが実際にファイルを「現在の形式で保存できない」と表示し、「最新の形式として保存する」というあまり役に立たないというデフォルトオプション(.dbfのオプションは表示されません)。仕事をすることを目的とするExcel用の拡張機能/プラグインがあります(
Calcの.dbfファイルには、アラビア語の代わりに意味不明な表現が残っています。それと並行して、同じシェープファイルの属性テーブルからエクスポートした.csvを開き、開始ダイアログでエンコーディングとしてUTF-8(および区切り文字としてコンマ)を指定していることを確認します。テキストファイルは、アラビア語が正しく表示された2番目のCalcスプレッドシートで開き、.dbfと同じ列と、先頭にOBJECTID列が含まれている必要があります。適切なアラビア語を含む.csvから.dbfに列をコピーアンドペーストします(実際には、時間を節約するために左端のID列を除いてテーブル全体をコピーアンドペーストしました。情報は同じです)。LibreOfficeの変更された.dbfで[保存]をクリックします(.dbfのような奇妙な形式を本当に使用するかどうかを尋ねられます。そうです)。
FGDBのシェープファイルのすべての.dbfコンポーネントについてこのプロセスを繰り返し、すべての意味不明な列をアラビア語の文字列に置き換えます。
5)アラビア語の列を貼り付けた.dbf部分を再保存するとすぐに、QGISでシェープファイルを開くことができます。インポートベクトルでエンコードとしてUTF-8を指定していれば、両方の言語で正しく機能しますファイルダイアログ。ただし、ArcGISはエンコーディングを自動的に認識せず、シェープファイルをプロジェクトに追加するときに選択を許可しないため、ArcGISでは(または少なくともすべてのバージョンで)適切に機能しません。Arcは、読み込むエンコードを指示するために、コードページ変換(.cpg)ファイルと呼ばれる、シェープファイルに別のコンポーネントを必要とします。
6)テキストエディタ(メモ帳、nanoなど)を使用して、Wordやその他のワードプロセッサは使用しないで、「UTF-8」という5文字のみを含むテキストファイルを作成します。シェープファイルごとに.cpgとして保存します([名前を付けて保存]ダイアログでシェープファイルの一部をクリックし、拡張子を消去して.cpgを追加します)。マルチパートシェープファイル)。.cpg拡張子は、これが.dbfファイルのエンコードに関する情報を含むファイルであることをArcに伝えます。同じ名前だが異なる拡張子の兄弟と共にシェープファイルにバンドルされると、シェープファイルのエンコードはArcGISによって自動的に認識されるようになります。
7)出来上がり。これで、元のファイルGeoDataBaseにあったものと正確に区別できる限り、英語とアラビア語の両方の文字列を含むシェープファイルが作成されました。私のArcMapとQGISの両方のインストールで開きます。どちらの場合も、両方の言語の文字列はマップラベルを含めて正しく表示されます。
警告:
ArcGISのすべてのコピーが、適切に入力されたテキストファイルとして属性テーブルをエクスポートするように見えません(少なくとも1台のコンピューターで、属性テーブルをテキストファイルにエクスポートしようとすると、データ行ではなくヘッダーのみを持つファイルになります。これはArcの適切な動作ではありません(もちろん、属性テーブルをテキストとしてエクスポートできるはずです)が、一部のユーザーには表示される可能性があります。
ArcGISが新しいシェープファイルをUTF-8エンコードで保存するようには見えません。これは、データから新しいシェープファイルを作成するユーザーにのみ影響し、マップを作成するためにそれらを表示、変更、および使用するだけのユーザーには影響しません。回避策は、ここで詳しく説明されているように、Windowsレジストリをいじる必要があるようです(http://support.esri.com/cn/knowledgebase/techarticles/detail/21106)。ArcGISとQGISの両方が上記のプロセスを使用して保存したシェープファイルを喜んで認識しているように見えるため、対処する必要はありませんでした。 Arcは新しいシェープファイルをUTF-8エンコーディングで保存したくないように見えますが、それらを更新/再保存してもかまいません)。
LibreOfficeの機能は、Windowsでもコンピューターと同じであると想定しています。私はほとんどの作業にGNU / Linuxを使用し、何らかのタスクなどにArcGISまたはAutocadを使用する必要がある場合にのみWindowsを起動するため、Fedoraで実行されているLibreofficeで.dbfファイルを変更しました。Windowsでも同じように動作すると思いますが、WindowsパーティションにLibreOfficeをインストールせずにテストすることはできません。現在のインターネット接続は、不要なダウンロードでは少し遅くなります。選択したエンコード(たとえば、exceltodbf.sourceforge.net /)で.dbfファイルを保存できるExcel用のプラグインがありますが、試していません。.dbfを操作して保存する方法は他にもあるかもしれませんが、LibreOfficeを使用してそれを行うための合理的な簡単な方法を見つけた後、私はそれらを調べていません。
あなたは直接エンコードするこのページによるとUTF-8でシェープファイルにFGDBsを変換することができますArcGISで生産マッピング延長、のために払っているのであれば、全体の問題は回避のようだ:http://resources.arcgis.com/en/help /main/10.1/index.html#//0103000001m1000000。このかなり基本的な機能(Unicodeはしばらく前から存在し、英語以外にも多くの言語が出回っている)が、追加料金を支払う顧客のみが利用できる理由は、ESRIの疑問です。