2

次の内容を含むpdfファイルを読み込もうとしています:

%PDF-1.4\n%âãÏÓ

open で読み取ると動作しますが、codecs.open(filename, encoding="utf8", mode="rb") でユニコード文字列を取得しようとすると、次の例外が発生しました。

UnicodeDecodeError: 'utf8' codec can't decode byte 0xe2 in position 10: invalid continuation byte

このファイルの内容からユニコード文字列を取得する方法を知っていますか?

PS: 私は python 2.7 を使用しています

4

2 に答える 2

7

PDF は、テキストではなく、バイナリ データで構成されています。それらは Unicode 文字列として意味のある表現ができません。

PDF を ISO8859-1 テキストとして扱うことで、これらの特定の文字を含む Unicode 文字列を取得できます。

f = codecs.open(filename, encoding="ISO8859-1", mode="rb")

しかし、その時点では、通常のopenバイトと読み取りバイトだけを使用したほうがよいでしょう。Unicode はテキスト用であり、データ用ではありません。

于 2013-06-18T05:53:30.990 に答える