回答:
元のDBF標準では、ISO8859-1を使用するように定義されており、ISO8859-1のみを使用しています。したがって、実際に標準に準拠しているShapefileを取得するときは、ISO8859-1である必要があります。もちろん、この(非常に古い)制限は、今日では実際には使用できません。
ArcGISおよびGeopublisher、AtlasStylerおよびGeoserverは、エンコーディングを定義するために標準を拡張し始めました。以下のためのArcGIS、例えば、ちょうど(他のシェープファイルと同じベース名を持つ).cpgファイルを作成し、エンコーディングの名前でそれを埋めます。
たとえば、テキストエディタでmyshape.cpgを作成し、5文字の「UTF-8」を挿入して保存します。その後、ArcGISでShapefileを開くと、その文字セットのDBFのテキストコンテンツが読み込まれます。
Geoserver:Geoserver WFSは、WFSレイヤーを圧縮されたシェープファイルとしてエクスポートできます。これが完了すると、.cstファイルがzipに含まれ、.cpgファイルとまったく同じように実行されます。
重要:これはすべて、列名ではなくデータにのみ適用されます。ファイルを他のプログラムで開くことができるようにする場合は、DBFの列名にASCIIのみを使用する必要があります。
ヒント:DBFのエンコーディングを変更するには、OpenOffice Calcで開きます。SaveAs...を選択します。左下の[フィルターオプション]をクリックし、[保存]を押します。その後、エンコードを定義して、テキストコンテンツを変換できます。
General input/output error
場合は、おそらくBaseがインストールされていません。問題は、OpenOfficeを使用してもLibreOfficeを使用しても同じです。
.cpg
ファイルはlibgdal 1.9のように、あまりにも、QGISでの作業の罰金になっています。時にはそれも必要であると考えられる:ssrebelious.wordpress.com/2012/03/11/...
「正しい」エンコーディングは存在しないと確信しています。.dbfファイルは任意のエンコーディングで作成でき、シェープファイルを開いて、属性がわかっている場合は属性を正しく読み取ることができます。
ESRIホワイトペーパーは、http://www.esri.com/library/whitepapers/pdfs/shapefile.pdfにあります。
通常、シェープファイルはUTF-8であるか、対象国のローカル(多くの場合、ラテンエンコーディング)であると予想されます。
エンコードに関する質問がある場合は、次の記事を参照してください:http : //www.joelonsoftware.com/articles/Unicode.html
それが言うように:
使用するエンコードを知らずに文字列を使用することは意味がありません。砂に頭を突き刺して「プレーン」テキストをASCIIのふりをすることはできなくなりました。
簡単な方法は、shpファイルをcsvファイルに変換することです。また、encaまたはiconvを使用してエンコードを検出します。UTF8およびgb18030ファイルを試してみましたが、動作します。