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

使用pdftools包pdf_subset()函数保存含特殊字符(波兰语字母)的PDF文件时文件名乱码问题的解决方法

解决pdftools::pdf_subset()中含特殊字符(波兰语字母)的路径/文件名乱码问题

这个问题我之前也碰到过,本质是Windows系统下R默认的UTF-8编码和pdftools依赖的底层C++库(Poppler)使用的系统本地编码不兼容导致的——特殊字符在编码转换过程中被破坏,最终触发文件找不到的错误。下面是两种可行的解决方法:

方法1:用enc2native()转换路径编码

enc2native()会把R中的UTF-8字符串转换为系统本地编码(比如波兰语系统对应的CP1250),这样底层库就能正确识别路径中的特殊字符了:

library(pdftools)

# 定义包含波兰语特殊字符的输出路径
output_path <- "FŁŻ_6/Siłaków.pdf"

# 转换为系统本地编码
native_output_path <- enc2native(output_path)

# 调用pdf_subset,使用转换后的路径
pdf_subset(
  input = 'https://cran.r-project.org/doc/manuals/r-release/R-intro.pdf',
  pages = 1:3,
  output = native_output_path
)

方法2:确保系统区域设置支持波兰语字符

如果方法1还是不行,检查你的Windows系统区域设置:

  • 打开「控制面板」→「区域」→「管理」标签页
  • 点击「更改系统区域设置」,选择「波兰语(波兰)」
  • 重启电脑后再运行脚本

这个步骤能确保系统的非Unicode程序(包括pdftools的底层库)默认使用支持波兰语的编码,从根源上避免编码冲突。

额外注意事项

  • 如果你是在脚本文件中硬编码路径,要确保脚本文件保存为UTF-8编码(可以用RStudio的「File → Save with Encoding」选择UTF-8),这样R才能正确读取路径中的特殊字符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 17:17:40