使用字符编码读取shapefile

时间:2016-08-15 00:58:43

标签: r shapefile maptools

有没有办法读取具有特定字符编码的形状文件?我正在尝试读取加拿大shapefile,其中包含一些名称中的特殊(法语)字符。我可以手动转换它们,但如果有一个我到目前为止视而不见的设置,我宁愿不这样做。

# manual conversion works
library(maptools)
shp <- file.path("path/to/file.shp")
map <- readShapePoly(shp, proj4string = CRS("+init=epsg:25832"))
map$ERNAME <- iconv(map$ERNAME, "Windows-1252", "UTF-8") 

1 个答案:

答案 0 :(得分:2)

使用maptools库和readShapePoly函数代替rgdalreadOGR参数,可以使用更多选项。例如,rgdal的语法可能是:

pasl=readOGR(".","filename", use_iconv=TRUE, encoding="UTF-8")

请注意,这不是通用解决方案,而是取决于文件的编码,在OP情况下为UTF-8。通用编码还包括latin1。在某些shapefile中,编码与.cpg文件一起在.shp文件(使用文本编辑器软件打开)中命名。创建新shapefile时,QGIS自动生成一个.cpg文件,而其他许多GIS软件却没有。