pgsql2shpでエンコーディングを制御する方法は?


8

データベースがあり、pgsql2shpでさまざまなシェープファイルをエクスポートしています。しかし、dbfを開くと、文字が正しく表示されません。例:BroeksterwÔld、これはBroeksterwäldである必要があります。

これはおそらくエンコードに関係しています。データベースはUTF-8です。シェープファイルをLATIN1としてエクスポートしようとしましたが、その方法がわかりません。


更新

この問題を解決するには、バッチスクリプトに「set pgclientencoding = latin1」(引用符なし)を追加します。


ステファンの答えは正しいです。Unix / bash環境では、それが必要ですexport PGCLIENTENCODING=LATIN1。少なくとも私の環境では大文字が必須です(Mac OS X 10.10.1およびPostgreSQL 9.3)。
thomaskonrad 2014

これは、新しい答えではなく、他の答えに対するコメントであるべきでした。
BradHards 2014

回答:


4

この問題を解決するには、バッチスクリプトに「set pgclientencoding = latin1」(引用符なし)を追加します。


3

エンコーディングを指定できるpgsql2shpのオプション-Wがあります。PGCLIENTENCODING環境変数の設定を調べることもできます。Dutch CBSまたはDutch Kadasterからのほとんどのデータセットは、Latin1ではなくCP1252エンコーディングで提供されます。


1
ありがとう!-Wオプションはshp 2 postgresでのみ機能し、残念ながらpostgres 2 shpでは機能しないと思います。PGCLIENTENCODING環境変数を設定しようとしましたが、正しく設定したかどうかわかりません。何を設定する必要がありますか?それはシステム変数によって、次に変数 'PGCLIENTENCODING'(引用符なし)および値 'Latin1'または 'CP1252'(引用符なし)の下になります。そして、どうやってpgsql2shpコマンドを書けばよいのでしょうか。このように:pgsql2shp.exe -f folder -h .. -p .. -u ... -P .. -g geometrie ..、または何かを追加する必要がありますか。ご協力いただきありがとうございます!
ステファン

0

シェープファイルを表示するためにどのソフトウェアを使用していますか?QGISを使用している場合は、シェープファイルのエンコーディングを選択して、新しいエンコーディングで保存できます。こちらもご覧ください


答えてくれてありがとう。しかし、私は自分が持っているスクリプトにエンコードを入れたいと思います。毎月60個のシェープファイルのエクスポートがあるためです。すべてのファイルのエンコーディングを毎月手動で変更したくありません。スクリプトに入れる方法をご存知でしょうか。
ステファン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.