字符串在列印到 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)
这是它的样子,当从 莫哈韦 (并在OSX Mojave的excel中查看)。含有不良字符:
这时,它写在 High Sierra (并在High Sierra的excel中查看)-------------------。含有不良字符:
当是当从写 Windows 10 并在windows 10上用excel查看(看起来不错!)。
这是当它被写入 莫哈韦但在Windows 10的excel中查看----。仍含有不良字符:
我有很多上面这种形式的字符数据(这些字符在写入csv和在excel中打开时看起来很奇怪)--如何清理这些字符,使文本在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以 阅读 你需要选择 "文件" ' "导入...",然后按照导入向导,让你指定文件编码。