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

Encoding of German umlauts when using readOGR

我正在尝试使用 rgdal 包提供的 readOGR 函数读取 OGR 矢量地图,但我在使用德语变音符号时遇到了一些麻烦。我提供了一个数据的小例子,变音符号 ö 被替换为 36.

map <-readOGR("/path/to/data.gdb", layer = "layer")
map@data$name
# [1] L36rrach
# [2] Karlsruhe
# [3] B36blingen
# [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 显示正确的德语变音符号吗?

我不太确定 encoding = "UTF-8/LATIN-1/..." 会做什么。我原以为您会选择一种且只有一种编码方案。在我的机器上,我确实看到了该八进制字符到 o-umlaut:

的翻译
> 'B36blingen'
[1] "Böblingen"
> 'L36rrach'
[1] "Lörrach"

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

?Quotes

除了编码之外,还需要在所使用的字体中包含字符。控制台显示中使用的字体似乎没有 o-umlaut 的正确映射。我的默认字体是 Courier。您还应该检查您的语言环境设置。 ?Sys.getlocale

如果 iconv 未设置为 TRUE,则忽略编码参数。

朱利安是对的。

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)

returns 字符串正确:

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