R 读取带有BOM表的UTF-8文本文件

R 读取带有BOM表的UTF-8文本文件,r,unicode,utf-8,character-encoding,byte-order-mark,R,Unicode,Utf 8,Character Encoding,Byte Order Mark,我有一个开头带有字节顺序标记(U+FEFF)的文本文件。我正在尝试读取R中的文件。是否可以避免字节顺序标记 函数fread(来自data.tablepackage)读取文件,但在第一个变量名的开头添加ļ230;: > names(frame_pers)[1] [1] "ļ»æreg_date" read.csv功能也是如此 目前,我已经做了一个功能,从第一列名称中删除BOM表,但我相信应该有一种方法可以自动剥离BOM表 remove.BOM <- function(x) setna

我有一个开头带有字节顺序标记(U+FEFF)的文本文件。我正在尝试读取R中的文件。是否可以避免字节顺序标记

函数
fread
(来自
data.table
package)读取文件,但在第一个变量名的开头添加
ļ230;

> names(frame_pers)[1]
[1] "ļ»æreg_date"
read.csv
功能也是如此

目前,我已经做了一个功能,从第一列名称中删除BOM表,但我相信应该有一种方法可以自动剥离BOM表

remove.BOM <- function(x) setnames(x, 1, substring(names(x)[1], 4))

> names(frame_pers)[1]
[1] "ļ»æreg_date"
> remove.BOM(frame_pers)
> names(frame_pers)[1]
[1] "reg_date"

您是否尝试过读取.csv(…,fileEncoding=“UTF-8-BOM”)<代码>?文件说明:

从R 3.0.0开始,接受编码“UTF-8-BOM”,并将其删除 字节顺序标记(通常用于文件和网页) 由Microsoft应用程序生成)


这是在版本1.9.6和1.9.8之间处理的;更新您的
数据。表
安装以修复此问题

完成后,您可以使用
fread

fread("file_name.csv")

也不为我工作。从notepad++复制粘贴时,我的原始数据看起来像“31.1”,但在R中,使用fread将其拆分为两列,使用read.csv,我得到以下前缀“ï”?(使用as.is=TRUE)。我使用autohotkey和Convert2Text从gui显示中获取ocr,并将其写入文件。这给了我一个问题,即“31.2”变成了“ï»。331”我使用的是1.10.4。最后我使用了“read_csv”并设置了“col_types=“c”,然后在转换为数字之前修剪第一个字符。这是一个混乱的局面。
fread("file_name.csv")