R 这是什么ÿþ;“A”吗;?

R 这是什么ÿþ;“A”吗;?,r,csv,format,R,Csv,Format,当我将csv文件读入r时,请求的数据帧的尺寸与我在excel或记事本中打开文件时看到的尺寸非常不同,列标题标记为“ÿþA”。这是什么意思? 谢谢,您正在读取的文件使用UTF-16或UTF-32编码(带有BOM),并且尚未正确通知r read.csv函数 正如Karsten所建议的,您应该使用fileEncoding参数来指定正确的编码,我怀疑应该是“UTF-16LE” 以下是R Studio文档中关于编码的说明: 编码 连接的输入/输出流的编码可以通过名称指定,其方式与提供给iconv的方式相同

当我将csv文件读入r时,请求的数据帧的尺寸与我在excel或记事本中打开文件时看到的尺寸非常不同,列标题标记为“ÿþA”。这是什么意思?
谢谢,

您正在读取的文件使用UTF-16或UTF-32编码(带有BOM),并且尚未正确通知r read.csv函数

正如Karsten所建议的,您应该使用fileEncoding参数来指定正确的编码,我怀疑应该是“UTF-16LE”

以下是R Studio文档中关于编码的说明:

编码 连接的输入/输出流的编码可以通过名称指定,其方式与提供给iconv的方式相同:请参阅帮助页面,了解如何找出平台上识别的编码名称。此外,“”和“native.enc”都表示“native”编码,即当前语言环境的内部编码,因此不进行翻译

重新编码仅适用于文本模式下的连接:使用二进制模式下指定的重新编码从连接读取将读取字节流,但混合使用文本和二进制模式读取(例如混合调用readLines和readChar)可能会导致不正确的结果

编码“UCS-2LE”和“UTF-16LE”经过特殊处理,因为它们是Windows“Unicode”文本文件的合适值。如果前两个字节是字节顺序标记0xFFFE,则这些字节将被删除,因为iconv的某些实现不接受BOM。请注意,尽管大多数实现将使用编码“UCS-2”处理BOM并选择适当的字节顺序,但一些(包括早期版本的glibc)将不会。“UTF-16”和“UCS-2”之间有细微的区别(参见:代理项对的使用非常罕见,因此“UCS-2LE”是合适的首选

从R3.0.0开始,可接受编码“UTF-8-BOM”进行读取,如果存在,将删除字节顺序标记(通常用于Microsoft应用程序生成的文件和网页)。如果在写入时需要(不推荐),则应显式写入,例如通过writeChar(\ufeff),con,eos=NULL)或writeBin(As.raw(c(0xef,0xbb,0xff)),二进制(con)

请求一个不受支持的转换是一个错误,在连接打开时会报告。对于无效输入,当请求的转换无法完成时会发生什么情况,通常没有记录。在输出时,结果可能是错误,并带有警告。在输入时,很可能是全部或部分输入up错误

可以从Sys.getlocale(“LC_CTYPE”)推断当前的本机编码,但并非所有操作系统都记录它

字节序标记 字节顺序标记(BOM)是一个Unicode字符,用于表示文本文件或流的结尾(字节顺序)。它在U+FEFF字节顺序标记(BOM)处编码.BOM使用是可选的,如果使用,则应显示在文本流的开头。除了作为字节顺序指示符的特定用途外,BOM字符还可以指示文本编码的几种Unicode表示形式中的哪一种


由于Unicode可以编码为16位或32位整数,因此从任意来源接收这些编码的计算机需要知道整数编码的字节顺序。BOM为文本生产者提供了一种向文本消费者描述文本流的尾数的方法,而不需要外部的合同或元数据文本流本身。一旦接收计算机使用了文本流,它可能会以其自身的字节顺序处理字符,不再需要BOM。因此,需要BOM是在文本交换的环境中产生的,而不是在封闭环境中的正常文本处理中。

可能是字节顺序mark(BOM)。尝试将
fileEncoding=“UTF-8”
作为
read.csv
的参数查看
readLines('yourfile.csv',n=1)
。您可能只需要使用
gsub来剪裁它