北海道の森林データ
2016/12/02 Jin Katagi 書きかけです
https://sites.google.com/site/kibanshapehokkaido/hokkaidoshinrin
一般民有林、道有林のデータ。
エンコーディングがShift_JISなので、Linuxで利用するにはunarで解凍するとよい。
エンコーディングの変更
ShapefileのエンコーディングもShift_JIS(.cpg参照)なので、UTF-8に変更する。
QGISを使う場合
IDが若干文字化けするが、変換前よりはマシ。
- Shapfileをロード
- レイヤ上でロードしたshapefileを右クリック → プロパティ → 一般情報 → データソースエンコーディングをShift_JIS → OK
- 再びレイヤ上でロードした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
Keyword(s):
References:[memo_Katagi]