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

R读取含日文字符CSV文件乱码及UTF-8编码警告解决问询

R读取含多语言字符CSV乱码及报错解决方案

问题原因梳理

  • 日文乱码:base R默认读取用系统本地编码,和CSV文件实际编码不匹配
  • incomplete final line警告:CSV文件最后一行末尾未添加换行符
  • 加fileEncoding="utf-8"后报无效输入:文件实际编码并非标准UTF-8,可能是UTF-8带BOM、Shift-JIS(日文系统常用编码)等格式

分步解决方法

第一步:修复CSV基础问题

打开CSV文件,将光标移动到最后一行的末尾,按下回车键后保存文件,即可解决incomplete final line警告。

第二步:调整base R读取参数

根据文件实际编码替换fileEncoding参数值即可:

  • 若为Windows系统导出的带BOM的UTF-8文件,使用如下代码:
texts <- read.csv("text.csv", sep = ",", header = TRUE, fileEncoding = "UTF-8-BOM")
  • 若为日文系统导出的文件,尝试如下编码参数:
# 编码为Shift-JIS时使用
texts <- read.csv("text.csv", sep = ",", header = TRUE, fileEncoding = "Shift-JIS")
# 编码为CP932时使用
texts <- read.csv("text.csv", sep = ",", header = TRUE, fileEncoding = "CP932")

可通过文本编辑器(如Notepad++)打开CSV文件,查看右下角标注的编码确认实际编码格式。

第三步:兼容性更强的读取方案(推荐)

base R的读取函数对多语言编码兼容性一般,可使用readr包的read_csv函数,自动适配编码且容错性更高:

  1. 安装并加载依赖包
install.packages("readr")
library(readr)
  1. 读取文件,根据实际编码调整encoding参数即可
texts <- read_csv("text.csv", locale = locale(encoding = "UTF-8"))

兜底乱码修复方案

若读取后仍有部分字符乱码,可使用iconv函数对字段单独转码:

# 示例为从CP932编码转至UTF-8,根据实际编码替换from参数值即可
texts$keyword <- iconv(texts$keyword, from = "CP932", to = "UTF-8")

内容的提问来源于stack exchange,提问作者Miguel López Dalmau

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 05:36:05