write.csv() 从 Mac OS 中写入的结果与从 Windows 中写入的结果不同 10?

write.csv() writes a different result from Mac OS than from Windows 10?

打印到 RStudio 控制台时看起来完全正常但写入 csv 并使用 excel 打开时显示为奇怪字符的字符串。

可重现的例子

以下生成显示为字符串 "a wit" 的对象,然后将其写入 csv:

# install.packages("dplyr")
library(dplyr)

serialized_char <- "580a000000030003060200030500000000055554462d380000001000000001000080090000000661c2a0776974"

(string <- serialized_char %>% 
    {substring(., seq(1, nchar(.), 2), seq(2, nchar(.), 2))} %>% 
    paste0("0x", .) %>% 
    as.integer %>% 
    as.raw %>% 
    unserialize())
[1] "a wit"

write.csv(string, "myfile.csv", row.names=F)

这是从 Mojave 编写时的样子(并在 OSX Mojave 中的 excel 中查看)- 包含不需要的内容字符:

这是在 High Sierra 中编写的(并在 High Sierra 的 excel 中查看)- 包含不需要的字符 :

何时是从 Windows 10 撰写并在 windows 10 excel 中查看(看起来不错!):

这是从 Mojave 编写的,但在 Windows 上的 excel 中查看时 10 - - 仍然包含不需要的字符:

问题

我有很多上述形式的字符数据(写入 csv 并在 excel 中打开时看起来很奇怪的字符)- 如何以文本出现的方式清理这些'normally' 在 excel 中。

我试过的

到目前为止我已经尝试了 4 件事

write.csv(string, "myfile.csv", fileEncoding = 'UTF-8')

Encoding(string) <- "latin-1"

Encoding(string) <- "UTF-8"

iconv(string, "UTF-8", "latin1", sub=NA)

问题不是 R,问题是 Excel。

Excel 对于平台的字符编码应该是什么有自己的想法。值得注意的是,即使在现代 macOS 上,它也坚持认为平台编码自然是 Mac Roman。而不是实际流行的 UTF-8。

默认情况下,文件在 macOS 上 被正确地 写入为 UTF-8。

要从 Excel 到 正确读取,您需要选择“文件”›“导入...”,然后按照导入向导操作指定文件编码。