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

如何将文件夹中所有.txt文件从UTF-16转码为UTF-8以适配R读取

批量转换UTF-16 TXT文件为UTF-8及R读取方案

一、批量转换编码的R脚本

如果需要永久将指定文件夹内所有.txt文件转为UTF-8编码,可使用以下脚本批量处理:

# 替换为你的目标文件夹路径
target_folder <- "C:/your/txt/folder/path"

# 获取所有.txt文件的完整路径
txt_files <- list.files(target_folder, pattern = "\\.txt$", full.names = TRUE)

# 循环处理每个文件
for (file in txt_files) {
  # 读取UTF-16编码文件(自动识别BOM,无BOM可尝试"UTF-16LE"或"UTF-16BE")
  file_data <- readLines(file, encoding = "UTF-16", skipNul = TRUE)
  
  # 选项1:覆盖原文件为UTF-8编码
  writeLines(file_data, file, encoding = "UTF-8")
  
  # 选项2:保存为新文件(避免覆盖原文件)
  # new_file <- sub("\\.txt$", "_utf8.txt", file)
  # writeLines(file_data, new_file, encoding = "UTF-8")
  
  cat(sprintf("处理完成:%s\n", basename(file)))
}

注意事项:

  • 务必替换target_folder为你的实际文件夹路径;
  • 根据需求选择覆盖原文件或保存为新文件的选项;
  • 若读取时出现乱码,说明文件是无BOM的UTF-16小端/大端编码,将encoding参数改为"UTF-16LE"或"UTF-16BE"即可。

二、直接在R中读取UTF-16文件(无需提前转换)

如果不需要修改原文件,可直接在读取时指定编码,让R自动转码处理:

# 用read.delim读取表格类UTF-16文件
data_frame <- read.delim(
  "path/to/your/file.txt",
  fileEncoding = "UTF-16",
  stringsAsFactors = FALSE
)

# 用readLines读取纯文本内容
text_content <- readLines("path/to/your/file.txt", encoding = "UTF-16")

手动转码方案(应对特殊情况)

如果上述方法失效,可通过iconv手动转码:

# 读取文件原始字节
raw_bytes <- readBin("path/to/your/file.txt", "raw", file.info("your/file.txt")$size)
# 转码为UTF-8
utf8_text <- iconv(rawToChar(raw_bytes), from = "UTF-16", to = "UTF-8")
# 拆分为行向量(按需使用)
text_lines <- strsplit(utf8_text, "\n")[[1]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 13:17:17