我正在尝试读取由SQL Server Management Studio生成的csv
文件并编码为UTF-8
(保存时我选择了该选项)到R
版本3.0.1(x64) )通过read.csv2()
。我不能R正确显示特殊字符。
如果我设置fileEncoding="UTF-8-BOM"
,导入将停在我有一个ÿ的行。但是,在Notepad++
中打开文件时,ÿ会以UTF-8
编码正确显示。我试过没有设置fileEncoding
,但是特殊字符没有正确显示(当然)。
csv flie可在此处获得: https://www.dropbox.com/s/7y47i826ikq8ahi/Data.csv
如何读取csv文件并以正确的编码显示文本?
谢谢!
答案 0 :(得分:4)
我找到了自己的答案。问题在于从UTF-8到系统区域设置(R中的默认编码)到fileEncoding
的转换。在我使用RStudio
时,我只是将默认编码更改为UTF-8,并从fileEncoding="UTF-8-BOM"
中删除了read.csv
。然后,读取整个csv文件,RStudio正确显示所有字符。
答案 1 :(得分:1)
那些仍然坚持这个问题的人。我的脚本能够识别“umlaute”(ä,ö,ü或ß),方法是在脚本顶部添加一行,更改字符编码options(encoding = "UTF-8")
的默认选项(在我的情况下设置选项) RStudio direclty没有影响编码!)。
答案 2 :(得分:0)
就我而言,我在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
或其他值应该有用。