R调用FROM_GeoJson()读取URL GeoJSON数据时韩文乱码如何解决
R读取URL来源GeoJSON韩文字符乱码修复方案
问题核心诱因
- 你设置的UTF-18属于不存在的无效编码,目前GeoJSON标准、韩国开放GIS接口默认使用的字符编码均为UTF-8,错误的全局编码配置是乱码的首要原因
- 直接将URL传入
FROM_GeoJson()时,函数未显式指定响应内容的解码编码,会按照系统/全局默认的错误编码解析返回的字节流,就会出现“길쌈공원”显示为“湲몄뙂怨듭썝”的乱码问题。
可直接运行的修复方案
- 先修正RStudio全局编码配置
打开RStudio全局设置,将默认文本编码修改为UTF-8,保存后重启R会话让配置生效。 - 手动拉取数据显式指定编码后再解析
不要直接把URL传给FROM_GeoJson(),先用httr包拉取接口响应,强制指定用UTF-8编码解析为文本后,再传入解析函数,代码如下:
# 加载依赖包 library(httr) library(geojsonio) url <- "https://icloudgis.incheon.go.kr/server/rest/services/ParkScore_Dynamic/MapServer/1/query?outFields=*&where=1%3D1&f=geojson" # 拉取接口数据,指定UTF-8编码解析文本 resp <- GET(url) geo_content <- content(resp, as = "text", encoding = "UTF-8") # 解析GeoJSON file_json <- FROM_GeoJson(url_file_string = geo_content)
备用简化方案
如果上述方法操作觉得繁琐,可以直接用sf包的读取函数直接拉取接口数据,sf会自动适配UTF-8编码,不需要手动处理编码问题,代码如下:
library(sf) file_json <- st_read("https://icloudgis.incheon.go.kr/server/rest/services/ParkScore_Dynamic/MapServer/1/query?outFields=*&where=1%3D1&f=geojson")
运行完成后查看属性字段,韩文字符即可正常显示。
内容的提问来源于stack exchange,提问作者rojung
相关产品推荐
相关产品推荐

