zoukankan      html  css  js  c++  java
  • 【python问题】python 读取pdf文件时,通过string.decode("utf-16")解析字符串时,因缺少字节导致程序崩溃的问题

    参考:https://blog.csdn.net/roymno2/article/details/71628128ou(感谢大佬)

    【问题背景】

      最近有一个任务,需要使用python2.7去读取pdf文件内容。使用的模块是pypdf。当我获取到pdf其中的一页page时,调用page.mergeScaledTranslatedPage()这个函数处理时,报了下面的错误:

    【问题原因】:

      这个错误是什么意思呢?咋一看跟解码和utf16有关。 

      这个python错误的意思是,decode("utf-16") 这个操作,碰到了一个单个字节的回车(0x0A),utf-16中每个字符应该是2个字节,如果是UTF-16大端,就是 00 0A,如果是UTF-16 小端(也叫UCS-2小端)的编码就是0A 00。

      这个错误就是在UTF-16 小端的情况下,少了后半个字符。即图中红色字符所指的位置,有个0A,它后面缺少了00。

      

     【解决办法】:

      解决方法是在decode时,用 decode("utf-16","ignore") 即加上ignore这个选项,把这个错误忽略掉。

  • 相关阅读:
    Java 抽象类和抽象方法
    java中的不为空判断
    表单form action的url写法
    对称加密和非对称加密
    spring全注解项目
    java自定义异常
    Spring data jpa学习
    SpringMVC实现简单应用
    MySql与Java的时间类型
    java反射
  • 原文地址:https://www.cnblogs.com/coreLeo/p/15499168.html
Copyright © 2011-2022 走看看