我正在尝试使用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来显示正确的德语变音符号?
答案 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