最佳实践:我应该尝试将UTF-8更改为区域设置还是保持原样安全?

时间:2016-09-22 07:24:25

标签: r windows encoding utf-8

我尝试将默认编码设置为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 filesHow to use Sys.setlocale(),但您可以看到它们似乎不适用于我的情况而且我不明白为什么。

我也试过Sys.setlocale(category = "LC_ALL", locale = "en_US.UTF-8")但是得到了

  

警告消息:在Sys.setlocale中(类别=&#34; LC_ALL&#34;,locale =   &#34; en_US.UTF-8&#34;):操作系统报告将区域设置设置为&#34; en_US.UTF-8&#34;   无法兑现

cmd中,systeminfo & pause命令提供

  

Systemgebietsschema:de-ch; Deutsch(Schweiz)   Eingabegebietsschema:de-ch; Deutsch(Schweiz)

修改

  • 我担心"unknown"编码会导致我不知道的错误和
  • 我认为使用新的标准UTF-8来避免像我那样的问题是好的。
  • 最后但并非最不重要的是,我希望能够获得可重现的结果 - 一位同事正在使用Mac(编码问题较少)......

Edit2:这个问题有什么经验?有没有最好的做法?

1 个答案:

答案 0 :(得分:0)

这不是一个完美的答案,而是一个很好的解决方法:正如Roland指出的那样,改变语言环境可能会很危险。所以保持原样。如果您有文件但遇到问题,只需针对RStudio的{​​{3}}搜索非UTF8编码即可。我看到的,大多数编辑都有这样的功能。

此外,here回答可让您更好地了解在source()文件的情况下您可以采取的措施。

相关问题