0

台湾のウェブサイトで見つかったテキストをスクレイピングしました。HTML を取り除き、必要なものだけを txt ファイルとして保持しました。txt ファイルの内容は Firefox/Chrome で正しく表示されます。Python3 を使用すると、次のf = open(text_file).read()エラーが発生します。

'utf-8' codec can't decode byte 0xa1 in position 29: invalid start byte

ETA: 私は ubuntu を使用しているので、Python やターミナルでのソリューションに満足しています!

そしてf = codecs.open(os.path.join(path, 'my_text.txt'), 'r', encoding='Big5')、そうすると、read()次のメッセージが表示されます。

'big5' codec can't decode byte 0xf9 in position 1724: illegal multibyte sequence

中国語の文字だけが必要ですが、Big5 としてエンコードされたものだけを保持するにはどうすればよいですか? これでエラーは解消されますよね?

4

1 に答える 1

1

組み込みopen()関数には次のerrorsパラメーターがあります。

with open(filename, encoding='utf-8', errors='replace') as file:
    text = file.read()

ファイルで他の文字エンコーディングが使用されているか、(テキストを保存するコードにバグがある場合) 複数の文字エンコーディングが混在している可能性があります。

ブラウザで使用されているエンコーディングを確認できます。たとえば、Chrome では「その他のツール -> エンコーディング」で確認できます。

于 2015-02-19T02:45:10.930 に答える