Windows 10开启UTF-8测试支持后RStudio无法设置en_US.utf8 locale
核心原因
你使用的R 4.1.0版本未兼容Windows 10的Beta版UTF-8支持特性,R从4.2.0版本才正式适配该功能,这是调用Sys.setlocale报错的根本原因。
推荐解决方案
- 首先将R升级至4.2.0及以上版本,升级完成后R会自动识别系统已开启的UTF-8设置,无需手动执行
Sys.setlocale命令,默认locale将自动切换为UTF-8编码。 - 若升级后需要手动指定locale,Windows平台下的UTF-8 locale命名格式为
English_United States.65001,而非Linux系统常用的en_US.utf8,可以执行以下命令验证:
Sys.setlocale("LC_ALL", "English_United States.65001")
低版本R兼容方案
如果暂时无法升级R版本,可以通过以下配置实现编码适配:
- 打开RStudio,依次进入
Tools→Global Options→Code→Saving,将默认文本编码设置为UTF-8,勾选Source files encoding下的UTF-8选项后保存。 - 找到R安装目录下
etc文件夹中的Rprofile.site文件,使用文本编辑器打开后在末尾添加以下内容:
options(encoding = "UTF-8") Sys.setenv(LANG = "en_US.UTF-8")
- 重启RStudio后执行
Sys.getlocale()检查配置,该方案仅能保证常规代码执行、文件读写的编码一致性,部分调用系统底层接口的函数仍可能出现编码异常。
内容的提问来源于stack exchange,提问作者RafaelUL
相关产品推荐
相关产品推荐

