2016-01-20 2 views
8

rgdalパッケージで提供されるreadOGR関数を使用してOGRベクトルマップを読み取ろうとしていますが、私はドイツ語のウムラウトに少し問題があります。私はデータがどのように見えるかの少しの例を提供しました。öのようなウムラウトは\ 303 \ 266に置き換えられました。私は「各符号化のために同じ結果を得ていることから、私はreadOGR機能(readOGR(dsn = "/path/to/data.gdb", layer = "layer", encoding = "UTF-8"またはreadOGR(dsn = "/path/to/data.gdb", layer = "layer", encoding = "LATIN-1")でエンコードを指定しようとしたが、それは完全にエンコーディングパラメータを無視しているように見えるreadOGRを使用した場合のドイツ語ウムラントの符号化

map <-readOGR("/path/to/data.gdb", layer = "layer") 
[email protected]$name 
# [1] L\303\266rrach 
# [2] Karlsruhe 
# [3] B\303\266blingen 
# [4] ... 

私は試しました。私はどのようにreadOGR関数またはR正しいドイツウムラウトを表示することができます知っていますか?

+0

あなたはWindowsマシン上ではありますか? –

+0

私はRStudio ServerをDebian 8 Serverで実行しています。 – Daniel

+0

非常に奇妙です。私はutf8をエンコードしたgeojson/shpファイルを読んでいて、Rのディスプレイが台無しになっています。 utf8エンコーディング(どちらもQGISからエクスポートされた)を使用してcsvファイルを介して同じデータを読み込むと、すべてがうまくいきます。誰かが私に銃を渡す。 –

答えて

2

encoding = "UTF-8/LATIN-1/..."の場合はどうなるのでしょうか。私はあなたが1つだけのコード体系を選択すると予想していました。

> 'B\303\266blingen' 
[1] "Böblingen" 
> 'L\303\266rrach' 
[1] "Lörrach" 

Rの文字のための様々な規則を参照するには、次のように入力します:

?Quotes 
+0

私はOGRベクトルマップを読みながら異なるエンコーディングを使用したことを示したいと思います。私はUTF-8で一度、LATIN-1などで一度読んだことがあります。 あなたの答えはちょっと変わっていますが、私は別の結果を得ています。 "B \ 303 \ 266blingen '#" B \ 303 \ 266blingen "' – Daniel

+0

エンコーディング以外にも、使用されているフォントに文字を入れる必要があります。あなたのコンソールディスプレイで使われているフォントは、o-ウムラウト用の適切なマッピングを持っていないようです。私のデフォルトフォントはCourierです。ロケールの設定も確認する必要があります。 '?Sys.getlocale' –

+0

それが問題でした。 Sys.getlocale()は現在 "C"が使用されているという情報を与えました。私はSys.setlocale()でUTF-8をサポートするロケールに変更しましたが、 '' L \ 303 \ 266rrach ''は正しく表示されます。 "Lörrach"。 – Daniel

1

エンコーディングパラメータは無視され、私のマシン上で、私はO-ウムラウトにその進文字の変換を参照してくださいiconvがTRUEに設定されていない場合

3

ジュリアンが正しいです。

file_name <- "../gis_data/bw/AX_KommunalesGebiet.shp" 
shape_kommunal <- readOGR(file_name, layer = "AX_KommunalesGebiet", use_iconv = TRUE, encoding = "UTF-8") 
data_kommunal <- [email protected] 
head(data_kommunal) 

正しく文字列を返します。

GKZ    NAME 
0 08236074   Kämpfelbach 
1 08425052   Grundsheim 
2 08435067   Deggenhausertal