You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用SUNGEO包调用Nominatum时地址UTF-8编码异常求助

解决SUNGEO地理编码后地址字段的UTF-8乱码问题

问题根源

你遇到的乱码是典型的UTF-8编码文本被错误以Latin-1(ISO-8859-1)解码导致的。比如示例中的Lövmovägen实际应为Lövmovägen——UTF-8的ö(字节0xC3 0xB6)被当作Latin-1解码就会显示为ö,ä同理。

解决方法

不要直接修改编码属性,需先将乱码文本还原为原始字节,再用UTF-8重新解码:

方法1:通过raw字节转换

# 将乱码文本转为raw字节(基于当前错误的Latin-1编码)
raw_bytes <- charToRaw(as.character(data_geocode_full_test$address))
# 用UTF-8重新解码字节
data_geocode_full_test$address <- rawToChar(raw_bytes, encoding = "UTF-8")

方法2:用iconv一步完成(更简洁)

data_geocode_full_test$address <- iconv(data_geocode_full_test$address, from = "latin1", to = "UTF-8")

验证方法

执行后可通过以下代码确认修复效果:

# 查看地址字段的编码属性
Encoding(data_geocode_full_test$address)
# 打印前几条地址检查内容
head(data_geocode_full_test$address)

预防建议

若后续批量处理仍出现类似问题,可提前配置HTTP请求的编码头(SUNGEO底层依赖httr):

library(httr)
# 设置全局HTTP请求接受UTF-8编码
httr::set_config(httr::add_headers(Accept = "application/json; charset=utf-8"))

内容的提问来源于stack exchange,提问作者m45ha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 16:59:55