3

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

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

csv 文件可在此处获得: https ://www.dropbox.com/s/7y47i826ikq8ahi/Data.csv

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

谢谢!!

4

3 回答 3

4

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

于 2013-08-07T09:34:15.107 回答
2

对于那些仍然坚持这个问题的人。我的脚本能够通过在脚本顶部添加一行更改字符编码的默认选项来识别“变音符号”(ä、ö、ü 或 ß)options(encoding = "UTF-8")(在我的情况下,在 RStudio 中设置选项直接没有影响编码!)。

于 2016-05-02T08:09:43.077 回答
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或其他应该有效。

于 2020-10-06T13:09:58.343 回答