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

如何解决R语言导入含特殊字符CSV文件时的编码丢失问题?

解决CSV导入R时特殊字符编码丢失问题

以下是几个可行的修正方案,按优先级尝试:

  • 确认文件实际编码并匹配参数
    很多时候CSV文件并非UTF-8编码(比如常见的ISO-8859-1、Windows-1252),用文本编辑器(如Notepad++)打开文件查看编码后,修改encoding参数:

    # 假设文件实际编码为ISO-8859-1
    mobilidade_urbana <- read.csv("Tabela Final - Cidades do Estudo de Caso - 02_09_2023.csv", sep = ";", dec = ".", encoding="ISO-8859-1")
    
  • 改用readr包的读取函数
    readr包的函数对编码的自动检测和处理更可靠,尤其适合含特殊字符的非英语表格:

    # 先安装加载包
    install.packages("readr")
    library(readr)
    
    # 用read_csv2适配分号分隔格式,指定编码
    mobilidade_urbana <- read_csv2("Tabela Final - Cidades do Estudo de Caso - 02_09_2023.csv", locale = locale(encoding = "UTF-8"))
    
    # 若自动检测失败,替换为文件实际编码,比如ISO-8859-1
    # mobilidade_urbana <- read_csv2("Tabela Final - Cidades do Estudo de Caso - 02_09_2023.csv", locale = locale(encoding = "ISO-8859-1"))
    
  • 通过文件连接指定编码
    用file()创建明确编码的连接后读取,避免read.csv的编码参数失效:

    con <- file("Tabela Final - Cidades do Estudo de Caso - 02_09_2023.csv", encoding = "ISO-8859-1")
    mobilidade_urbana <- read.csv(con, sep = ";", dec = ".")
    close(con)
    
  • 转换已读取数据的编码
    如果数据已加载但编码错误,用iconv()转换字符列的编码:

    # 替换为实际需要修正的列名
    mobilidade_urbana$nome_cidade <- iconv(mobilidade_urbana$nome_cidade, from = "ISO-8859-1", to = "UTF-8")
    

内容的提问来源于stack exchange,提问作者Gabriel Pivante

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 21:57:16