You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何解决PdfReadWarning提示的/GBK-EUC-H等高级编码未实现问题?

如何解决PdfReadWarning提示的/GBK-EUC-H等高级编码未实现问题?

嘿,我来帮你搞定这个PDF读取时的编码警告问题!这个警告本质是你用的PDF处理工具(比如PyPDF2、pdfminer这类)对PDF里的GBK-EUC-H、UniGB-UCS2-H这类中文字体编码支持不足导致的,给你几个实用的解决办法:

  • 替换/升级PDF处理库
    有些旧版本的库对中文字体兼容性很差,比如早期的PyPDF2。你可以试试换成pdfplumber,它对中文编码的支持要友好很多,安装命令直接在终端敲:pip install pdfplumber,用它来读取PDF大概率能避开这个编码坑。要是你习惯用PyPDF2,那就升级到最新版本试试:pip install --upgrade PyPDF2,新版本可能修复了不少编码相关的bug。

  • 手动添加缺失的字体文件
    首先你不用特意找“GBK-EUC-H”“UniGB-UCS2-H”专属字体,咱们系统自带的宋体(SimSun.ttf)、黑体(SimHei.ttf)这类通用中文字体就能适配这些编码。接下来找对字体存放的目录:

    • 如果用的是PyPDF2,字体目录一般在你Python安装路径下的Lib/site-packages/pypdf2/fontdata文件夹里;
    • 如果是依赖pdfminer的工具(比如pdfplumber),字体目录就在Lib/site-packages/pdfminer/font文件夹里;
      把你找到的中文字体文件复制进去,重启脚本再读取PDF,警告应该就消失了。
  • 临时屏蔽警告(不推荐长期用)
    要是你只是嫌警告烦,且PDF内容读取起来没乱码,那可以用Python的警告模块把它关掉,代码如下:

    import warnings
    warnings.filterwarnings("ignore", category=UserWarning, module="pdfminer")
    

    不过这个方法只是“眼不见为净”,没真正解决编码问题,要是后续出现乱码还是得用前两个方法。

备注:内容来源于stack exchange,提问作者Shuan

火山引擎 最新活动