我在这里就同一问题写了一个更长的答案:Windows 上的 R:字符编码地狱 https://stackoverflow.com/questions/18789330/r-on-windows-character-encoding-hell/28461535#28461535 .
快速回答,使用参数编码而不是 fileEncoding 应该可以解决您的第一个问题。您将无法在 RStudio 的控制台或表格视图中读取它,但您将能够在公式中使用它。
d <- read.csv("./Data/1.csv", encoding="UTF-8")
head(d)
将表保存到 UTF-8 文件中:
> test2 <- read.csv("test2.csv", header = FALSE, sep = ",", quote = "\"", dec = ".", fill = TRUE, comment.char = "", encoding = "UTF-8")
Warning message:
In read.table(file = file, header = header, sep = sep, quote = quote, :
incomplete final line found by readTableHeader on 'test2.csv'
这为您提供了控制台和 RStudio 视图中的外观
> test2
V1 V2
1 <U+0531> <U+0532>
2 1 10
3 2 20
但重要的是,您可以在 R 中对其进行操作。因此,在我的例子中,可以看到脚本窗口输入 d 具有 UTF-8 编码,并且 grep 可以在表中正确找到此编码。
> Encoding("Ա")
[1] "UTF-8"
> grep("Ա", as.character(test2[1,1]))
[1] 1
您可能需要找到适合您的设置的合适的编码变体,或者可能需要更改它们。不幸的是我不确定它是在哪里完成的。
您可能无法在所有阶段都使其完美,但绝对有可能让它在 Windows 7 环境中也正常工作。