我尝试将默认编码设置为UTF-8;到目前为止没有成功:
a <- "Hallo"
b <- "äöfd"
print(Encoding(a))
# [1] "unknown"
print(Encoding(b))
# [1] "latin1"
options(encoding = "UTF-8")
a <- "Hallo"
b <- "äöfd"
print(Encoding(a))
# [1] "unknown"
print(Encoding(b))
# [1] "latin1"
old_locale <- Sys.getlocale()
Sys.setlocale(category = "LC_ALL", locale = "English_United States.1252")
a <- "Hallo"
b <- "äöfd"
print(Encoding(a))
# [1] "unknown"
print(Encoding(b))
# [1] "latin1"
Sys.getlocale()
# [1] "LC_COLLATE=German_Switzerland.1252;
# LC_CTYPE=German_Switzerland.1252;
# LC_MONETARY=German_Switzerland.1252;
# LC_NUMERIC=C;LC_TIME=German_Switzerland.1252"
我找到了以下链接R Encoding for files和How to use Sys.setlocale(),但正如你所看到的,它们似乎在我的情况下不起作用,我不明白为什么。
我也试过Sys.setlocale(category = "LC_ALL", locale = "en_US.UTF-8")
,但是
警告消息:在Sys.setlocale(category =“LC_ALL”,locale =“en_US.UTF-8”)中:操作系统报告将区域设置设置为“en_US.UTF-8”的请求无法执行
在cmd
中,命令systeminfo & pause
给出
Systemgebietsschema:de-ch;多伊奇(Schweiz)简体中文de-ch;多伊奇(Schweiz)
编辑:
- 我担心
"unknown"
编码可能会导致我不知道的错误。 - 我认为使用新的标准UTF-8来避免像我遇到的问题是很好的。
- 最后但并非最不重要的是,我希望能够得到可重复的结果-一位同事正在Mac上工作(编码问题较少)...
**Edit 2:**这个问题的经验是什么?是否有最佳做法?
1条答案
按热度按时间8hhllhi21#
这不是一个完美的答案,而是一个很好的解决方案:正如罗兰所指出的,换个地方可能会有危险。所以就这样吧。如果你有一个文件,你遇到了麻烦,只是搜索非UTF8编码为
RStudio
描述的here。我所看到的,大多数编辑都有这样的功能。此外,this回答提供了更多的洞察力,如果你
source()
一个文件,你可以做什么。有关在排序规则起关键作用时处理区域设置的方法,请参见here
若干年后编辑:我意识到,Windows允许您更改一些设置,这也会影响R/RStudio:
x1c 0d1x在此德语设置中,例如(重启RStudio后):
然后...
在瑞士,例如。(重启RStudio后):
虽然此设置不影响
LC_TIME=German_Switzerland.1252