R语言read_csv()执行报错:用户文件夹含重音字符找不到时区数据库
R中read_csv因用户路径重音字符乱码报错的解决方案
该问题根因为tzdb包旧版本在Windows下的路径编码解析缺陷,read_csv依赖tzdb处理时区数据,读取路径时会将重音字符错误转码为乱码导致找不到文件,可按优先级选择以下方案解决:
- 方案一:升级tzdb到最新版本
运行以下命令升级tzdb包,最新版本已修复该类非ASCII路径解析问题:
install.packages("tzdb")
升级完成后重启R,重新调用read_csv()即可正常运行。
- 方案二:手动指定tzdb数据路径
若升级包后仍未生效,可在每次运行脚本的开头、加载tidyverse前添加代码,强制指定正确的tzdata路径:
library(tzdb) tzdb_set_directory("C:/Users/Administración/Documents/R/win-library/4.1/tzdb/tzdata")
- 方案三:自定义R库安装路径(彻底规避特殊字符问题)
- 新建一个不含任何非ASCII字符的R库目录,例如
C:\R\win-library\4.1 - 运行
file.edit("~/.Renviron")打开R环境变量配置文件,添加一行内容:
R_LIBS_USER="C:/R/win-library/4.1"
- 保存文件后重启R,运行
.libPaths()确认输出的第一个路径为你新建的目录,后续所有R包均安装到该路径,从根源避免路径特殊字符引发的各类编码问题。
- 方案四:修改Windows系统区域编码
打开Windows设置→时间和语言→语言&区域→管理语言设置→更改系统区域设置,勾选「Beta版:使用Unicode UTF-8提供全球语言支持」,重启电脑后即可解决所有R相关的路径编码乱码问题。注意该修改可能导致部分老旧的非Unicode程序出现显示乱码,如无此类程序使用需求可选择该方案。
内容的提问来源于stack exchange,提问作者nikoladjal
相关产品推荐
相关产品推荐

