有没有办法读取具有特定字符编码的形状文件?我正在尝试读取加拿大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")
答案 0 :(得分:2)
使用maptools
库和readShapePoly
函数代替rgdal
和readOGR
参数,可以使用更多选项。例如,rgdal的语法可能是:
pasl=readOGR(".","filename", use_iconv=TRUE, encoding="UTF-8")
请注意,这不是通用解决方案,而是取决于文件的编码,在OP情况下为UTF-8
。通用编码还包括latin1
。在某些shapefile中,编码与.cpg
文件一起在.shp
文件(使用文本编辑器软件打开)中命名。创建新shapefile时,QGIS
自动生成一个.cpg
文件,而其他许多GIS软件却没有。