【发布时间】:2013-11-25 01:06:13
【问题描述】:
我将 Excel 表格保存为文本 (*.txt)。不幸的是,Excel 不允许我选择编码。所以我需要在记事本中打开它(以 ANSI 格式打开)并将其保存为 UTF-8。然后,当我在 R 中阅读它时:
data <- read.csv("my_file.txt",header=TRUE,sep="\t",encoding="UTF-8")
它显示以“X.U.FEFF.”开头的第一列的名称。我知道这些是为告诉任何程序文件是 UTF-8 格式而保留的字节。所以它不应该显示为文本!这是一个错误吗?还是我错过了一些选择?提前致谢!
【问题讨论】:
-
尝试使用
read.csv参数check.names=FALSE。请注意,如果您使用它,您将无法使用$表示法直接引用列。 -
UTF-8 文件不应该包含字节顺序标记,请参阅RFC 3629 以获得解释。
-
谢谢@Matthew。它部分工作。 X.U.FEFF 不见了,但我不能再按名称引用第一列(尽管其他列仍然有效)。我仍然认为这是 R 未来版本中需要解决的错误。
-
如果你把它们放在引号里,你可以通过名字来引用它们,例如,
yourdf$"first col" -
@Zack,我见过一些带有这些第一个字节的 UTF-8 文件,所以我认为这是一个规则。不是什么大问题,因为我总是可以重命名第一列,只是认为它应该有一天会解决。
标签: r csv utf-8 byte-order-mark file-encodings