You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R中使用read.csv读取CSV文件失败的技术求助

解决R中读取CSV文件时的多字节字符串错误问题

看起来你在处理网页抓取的CSV数据时遇到了多字节字符串解析的问题,这类数据常带有HTML转义字符(比如错误里的<)、非标准文本限定符或者编码问题,导致基础的read.csv()无法正常解析。下面是几个针对性的解决方案,你可以逐一尝试:

  • 指定正确的文件编码
    R默认的编码可能和你的文件不匹配,这是触发多字节错误的常见原因。你可以尝试给read.csv()加上fileEncoding参数,优先试试UTF-8,不行再换GBK或ISO-8859-1:

    currency <- read.csv("02prepared data/scraped data kickstarter/film & video1.csv", fileEncoding = "UTF-8")
    

    如果你不确定文件编码,可以用readr包的guess_encoding()工具检测:

    library(readr)
    guess_encoding("02prepared data/scraped data kickstarter/film & video1.csv")
    

    然后用检测到的编码值替换fileEncoding参数即可。

  • 改用readr包的健壮读取函数
    基础的read.csv()对特殊字符和编码的兼容性较差,readr包的read_csv()能更好地处理这类问题,还会给出更清晰的错误提示,甚至自动修复一些格式问题:

    library(readr)
    currency <- read_csv("02prepared data/scraped data kickstarter/film & video1.csv")
    

    如果还是有问题,可以通过locale参数指定编码,或者用col_types手动定义列类型,避免自动解析时出错。

  • 预处理清理特殊字符
    你的数据里可能存在HTML转义字符(比如&lt;对应<)或者多余的文本限定符("、'),可以先读取文件内容做清理,再重新读取:

    # 读取文件所有行内容
    file_content <- readLines("02prepared data/scraped data kickstarter/film & video1.csv", warn = FALSE)
    # 替换HTML转义字符
    file_content <- gsub("&lt;", "<", file_content)
    file_content <- gsub("&gt;", ">", file_content)
    # 移除多余的引号
    file_content <- gsub("['\"]", "", file_content)
    # 将处理后的内容写入临时文件
    writeLines(file_content, "temp_cleaned.csv")
    # 读取清理后的文件
    currency <- read.csv("temp_cleaned.csv")
    
  • 手动指定文本限定符和分隔符
    如果CSV文件用了非标准的文本限定符,你可以通过quote参数明确指定,比如文件里用单引号作为限定符:

    currency <- read.csv("02prepared data/scraped data kickstarter/film & video1.csv", quote = "'")
    

    要是分隔符不是逗号,也可以用sep参数指定(比如sep = ";")。

内容的提问来源于stack exchange,提问作者Dishant Shetty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:52:22