HTML を Web サイトから JSON にダンプしようとしていますが、さまざまな文字エンコーディングを処理する方法が必要です。
それが utf-8 でない場合、おそらく ISO-8859-1 であると読んだので、今私がやっていることは次のとおりです。
for possible_encoding in ["utf-8", "ISO-8859-1"]:
try:
# post_dict contains, among other things, website html retrieved
# with urllib2
json = simplejson.dumps(post_dict, encoding=possible_encoding)
break
except UnicodeDecodeError:
pass
if json is None:
raise UnicodeDecodeError
もちろん、他のエンコーディングに遭遇した場合、これは失敗するため、一般的なケースでこの問題を解決する方法があるかどうか疑問に思っています。
そもそも HTML をシリアライズしようとしている理由は、それを POST リクエストで NodeJS サーバーに送信する必要があるためです。したがって、誰かがそれを可能にする別のソリューションを持っている場合 (おそらく JSON にシリアル化する必要はありません)、私もそれを聞いて喜んでいます。