私は、次のログ行でPythonのUnicodeDecodeErrorを追跡しようとしている:一貫性のないファイルの動作
10.210.141.123 - - [09/Nov/2011:14:41:04 -0800] "gfR\x15¢\x09ì|Äbk\x0F[×ÐÖà\x11CEÐÌy\x5C¿DÌj\x08Ï ®At\x07å!;f>\x08éPW¤\x1C\x02ö*6+\x5C\x15{,ªIkCRA\x22 xþP9â\x13h\x01¢è´\x1DzõWiË\x5C\x10sòʨR)¶²\x1F8äl¾¢{ÆNw\x08÷@ï" 400 166 0.000 "-" "-"
私はVimの中全体のログファイルを開いて、その後、私ができるように、新しいファイルに行をヤンク1行だけをテストしてください。しかし、私の解析スクリプトは、新しいファイルで正常に動作します - UnicodeDecodeErrorをスローしません。私は、なぜ1つのファイルがエラーを生成するのか、他のファイルが(表面上に)同じでないのか理解できません。それCannot determine (or understand) your language preferences.
file -i
は、両方のファイルがRegular file
秒であることを述べていることを訴えたファイルのエンコーディングを決定するためにenca
を実行している:ここで
は、私が試したものです。私も元のログファイルの他の行をすべて削除しても、1つのファイルにエラーがあり、もう1つのファイルにエラーはありませんでした。私は再びファイルの書き込み、私の.vimrcから
set encoding=utf-8
を削除しようとした、と私はまだ一つのファイルにしていない他でエラーが発生しました。
ログはnginxログです。 nginxのは、彼らのリリースノートにこのノートを持っています
*) Change: now the 0x00-0x1F, '"' and '\' characters are escaped as \xXX
in an access_log.
Thanks to Maxim Dounin.
私のPythonスクリプトは、with open('log_file') as f
を持っていると私は辞書にjson.dumps
を呼び出そうとするとエラーがアップします。
これをどのように追跡できますか?
この投稿からその行をコピーすると、エラーが表示されますか? – agf