0

私は中国語のドキュメントを持っていますが、ドキュメントにはデコードのエラーのために多くのエラー文字列が残っています。それらはすべてfffdff10または何かのように見えます。

ここで、これらのエラー文字列の発生をすべて削除する必要があるため、それらのパターンを知る必要がありますが、有用な情報が見つかりません。私が今知っているように見えるのは、それらが 4 文字で構成され、'ff' で始まるということだけですが、最後の 2 つは不明です。

たとえば、エラー文字列は次のようになり300dfffdますafffdnormalff0cword

上記の 2 つの単語に必要なのは、300danormalwordです。

ffで始まる通常の単語があるため、すべての で始まる 4 文字パターンを削除することはできません。

それらを表すことができる単一の re パターンはありますか? それとも他におすすめの方法はありますか?ありがとう。

ところで、私はこれを Python で行っているので、Pythonic の方法は大歓迎です!

ありがとう。

更新:</p>

パターンを使用することff(fd|\d\w|\w\d)になり、ほとんどすべてのエラーを削除しました。

ff07とのようないくつかのエラーff50は、re パターンで削除されているはずなので、奇妙なことに削除されませんが、そのわずかなエラーは私の許容範囲内です。

4

2 に答える 2

2

あなたが話している文字のすべてがエラーであるとは限りません。U+FFFD はエラー置換文字です。これは、一部のデコード ステップで使用する文字が見つからなかったことを意味します。U+FF0C は全角のカンマで、U+FF10 は全角のゼロです。これらはどちらも完全に有効な文字であり、そのままにしておく必要がある可能性があります。

必要に応じて、それらを削除できます。

doc = mydoc.encode('charmap', 'ignore')

気に入らない特定の Unicode 文字がある場合は、次のようにします。

bad = set(u"\ufffd\uff10\uff0c") # etc
mydoc = u"".join(c for c in mydoc if c not in bad)
于 2012-06-27T10:49:50.587 に答える
0

最終的にパターンを使用しff(fd|\d\w|\w\d)、いくつかのエラーを除いてすべて削除しました。

ff07 や ff50 などの一部のエラーは、re パターンで削除されるはずだったので削除されていませんが、そのわずかなエラーは許容範囲内です。

于 2012-06-28T12:14:05.560 に答える