とらりもんHOME  Index  Search  Changes  Login

北海道の森林データ

2016/12/02 Jin Katagi 書きかけです

https://sites.google.com/site/kibanshapehokkaido/hokkaidoshinrin

一般民有林、道有林のデータ。

エンコーディングがShift_JISなので、Linuxで利用するにはunarで解凍するとよい。

エンコーディングの変更

ShapefileのエンコーディングもShift_JIS(.cpg参照)なので、UTF-8に変更する。

QGISを使う場合

IDが若干文字化けするが、変換前よりはマシ。

  1. Shapfileをロード
  2. レイヤ上でロードしたshapefileを右クリック → プロパティ → 一般情報 → データソースエンコーディングをShift_JIS → OK
  3. 再びレイヤ上でロードしたshapefielを右クリック → 名前をつけて保存 → パスに保存名を入力 → 形式 ESRI Shapefile → エンコーディング UTF-8 →OK

原因はこのあたり?

【まえおき】
現在のFMEでは、UTF-8 Shapefile を読み込んだとき、属性名中の日本語文字が文字化けします。
また、属性名に日本語文字が含まれるデータをFMEによって UTF-8 Shapefile で出力したとき、ArcGIS 等で開いたときに、属性名中の日本語文字が文字化けします。

この件について以前、Safe社に確認したところ、Shapefileの属性ファイルとして使用されているdBASEフォーマットの本来の仕様では、フィールド名はシステムのエンコーディングで記述することになっており、FMEはそれに従い、エンコーディングの設定いかんに関わらず属性名はシステムのエンコーディング(日本語版WindowsならShift_JIS)で処理するとのことでした。
しかし、現実には、ArcGISをはじめとして Shapefile を使用するアプリケーションでは、属性名も含めて指定されたエンコーディングで記述されていることを前提としているようです。
そのため、Safe社には、Shapefileを使用するアプリケーションの仕様にあわせて、属性名も指定したエンコーディングで読み書きするように改良することを要望しています。
現時点では、属性名に日本語文字が含まれる場合には、Shift_JIS のみのサポートとなります(Windowsの場合)。

GDAL/ogrコマンドを使う場合(その1)

上記のQGISを使う場合より更にIDが文字化けするが、一括処理したい場合に。

ogr2ogr -f "MapInfo File" ogr.mid 10_道有林渡島東部_小班_2453.shp
nkf -w ogr.mid > ogr_w.mid
mv ogr.mif ogr_w.mif
ogr2ogr -f "ESRI Shapefile" ogr2.shp ogr_w.mid
rm ogr.mid

GDAL/ogrコマンドを使う場合(ボツ)

 以下の方法ではなぜかうまくいかない。

export SHAPE_ENCODING="SHIFT_JIS" # iconv -l でSHAPE_ENCODINGのリストを取得できる
ogr2ogr test.shp 10_道有林渡島東部_小班_2453.shp -lco ENCODING=UTF-8
Last modified:2016/12/06 12:31:17
Keyword(s):
References:[memo_Katagi]