使用readOGR时编码德语变音符号

时间:2016-01-20 08:23:02

标签: r encoding rgdal

我正在尝试使用readOGR包提供的rgdal函数读取OGR矢量地图,但我对德语变音符号有点麻烦。我提供了一个数据示例的例子,像ö这样的变音符号被替换为 \ 303 \ 266

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

我尝试在readOGR函数(readOGR(dsn = "/path/to/data.gdb", layer = "layer", encoding = "UTF-8"readOGR(dsn = "/path/to/data.gdb", layer = "layer", encoding = "LATIN-1")中指定编码,但看起来它完全忽略了编码参数,因为我得到了对于我尝试过的每种编码都有相同的结果。有谁知道如何获得readOGR函数或R来显示正确的德语变音符号?

3 个答案:

答案 0 :(得分:7)

朱利安是对的。

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

正确返回字符串:

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

答案 1 :(得分:4)

如果iconv未设置为TRUE,则忽略encoding-parameter。

答案 2 :(得分:1)

我不太清楚encoding = "UTF-8/LATIN-1/..."可能会做什么。我本以为你会选择一种且只有一种编码方案。在我的机器上,我确实看到八进制字符转换为o-umlaut:

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

要查看R字符的各种约定,请键入:

?Quotes

除了编码之外,还需要使用字体中的字符。控制台显示中使用的字体似乎没有适合o-umlaut的映射。我的默认字体是Courier。您还应该检查您的区域设置。 ?Sys.getlocale