在带有Mac OS X的R 3.1.2中使用UTF-8编码的特殊字符的错误文本文件输出

时间:2015-01-30 13:56:09

标签: r csv encoding utf-8

使用R 3.1.2和Mac OS X 10.6编写带有西班牙语口音的csv文件时遇到问题。

我无法将带有重音的单词写入文本文件。

当我这样做时:

con <- file("y.csv",encoding="UTF-8")
write.csv("Ú",con)

我得到的y.csv文件包含以下内容:

“”, “x” 的 “1”, “√ö”

即“√ö”而不是“Ú”。

使用write.table时,结果是等效的。

编码(“Ú”)是“UTF-8”

如果我write.xlsx("Ú","y.xlsx"),我会获得成功显示Ú的y.xlsx文件。

我还尝试使用iconv()转换为其他编码但没有成功。

我在RStudio和TextEdit中设置了默认编码“UTF-8”。当仅使用R(不是RStudio)时,问题是相同的。 在RStudio中,特殊字符正确显示(在文件中),也在R。

的控制台中显示

Sys.getlocale()给出

"es_ES.UTF-8/es_ES.UTF-8/es_ES.UTF-8/C/es_ES.UTF-8/es_ES.UTF-8"

在Mac OS X终端

file -I y.csv

给出

y.csv: text/plain; charset=utf-8

我看不出问题出在哪里。有什么帮助吗?

3 个答案:

答案 0 :(得分:0)

刚刚遇到另一个问题似乎与此问题几乎相同:

Export UTF-8 BOM to .csv in R

答案 1 :(得分:0)

问题不在于R中的编码问题,而是来自TextEdit,虽然我在首选项中选择了UTF-8编码,但它没有显示正确的字符。使用不同的编辑器解决了。我使用的是Mac OS X 10.6.8和TextEdit 1.6。

答案 2 :(得分:0)

也许您会用重音写单词,但是Excel要求使用不同的编码。尝试使用例如write_csv()编写csv,然后使用变通方法打开csv:

  • 打开Excel
  • 然后选择标签数据|获取外部数据|来自文字
  • 选择文件
  • 然后在文本导入向导的步骤1中,选择文件来源65001:Unicode(UTF8)。

另请参见http://www.openforis.org/support/questions/279/wrong-characters-display-when-exporting-files-to-csv-from-collect