R语言中的字符编码

R语言中的字符编码,r,character-encoding,R,Character Encoding,我正在尝试通过read.csv2()将Sql Server Management Studio生成并编码为UTF-8(保存时我选择了该选项)的csv文件读取到R版本3.0.1(x64)。我无法让R正确显示特殊字符 如果我设置fileEncoding=“UTF-8-BOM”导入将在我有一个ÿ的行停止。但是,在Notepad++中打开文件时,使用UTF-8编码正确显示ÿ。我尝试过不设置文件编码,但是特殊字符没有正确显示(当然) csv文件可在以下位置获得: 如何读取csv文件并以正确的编码显示文本

我正在尝试通过
read.csv2()
将Sql Server Management Studio生成并编码为
UTF-8
(保存时我选择了该选项)的
csv
文件读取到
R
版本3.0.1(x64)。我无法让R正确显示特殊字符

如果我设置
fileEncoding=“UTF-8-BOM”
导入将在我有一个ÿ的行停止。但是,在
Notepad++
中打开文件时,使用
UTF-8
编码正确显示ÿ。我尝试过不设置
文件编码
,但是特殊字符没有正确显示(当然)

csv文件可在以下位置获得:

如何读取csv文件并以正确的编码显示文本


谢谢

我自己找到了答案。问题在于通过
fileEncoding
将UTF-8转换为系统语言环境(R中的默认编码)。在使用
RStudio
时,我只是将默认编码更改为UTF-8,并从
read.csv
中删除了
fileEncoding=“UTF-8-BOM”
。然后,整个csv文件被读取,RStudio正确显示所有字符。

对于仍然存在此问题的用户。我的脚本能够识别“umlaute”(ä、ö、ü或ß),方法是在脚本顶部添加一行,更改字符编码的默认选项
选项(encoding=“UTF-8”)
(在我的例子中,在RStudio direclty中设置选项不会影响编码!)。

在我的例子中,我在docker容器(debian和R)中的R中遇到了这个问题,当我在容器中运行
locale
时,所有变量都显示为空。我解决了将此添加到Dockerfile中的问题

ENV LANG=en_US.UTF-8
ENV LC_CTYPE=en_US.UTF-8
ENV LC_NUMERIC=es_AR.UTF-8
ENV LC_TIME=es_AR.UTF-8
ENV LC_COLLATE=en_US.UTF-8
ENV LC_MONETARY=es_AR.UTF-8
ENV LC_MESSAGES=en_US.UTF-8
ENV LC_PAPER=es_AR.UTF-8
ENV LC_NAME=es_AR.UTF-8
ENV LC_ADDRESS=es_AR.UTF-8
ENV LC_TELEPHONE=es_AR.UTF-8
ENV LC_MEASUREMENT=es_AR.UTF-8
ENV LC_IDENTIFICATION=es_AR.UTF-8
ENV LC_ALL=C.UTF-8
在某些值中,我有
es_AR
,但我认为
en_US
或其他值应该有效