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

问题描述 投票:10回答:3

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

r encoding rgdal
3个回答
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


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

4
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.