私はPython用のTwitterAPIを試していますが、文字エンコード/デコードの問題が発生しました。ユーザー(この場合は@BBCWorld)のツイートを収集しているときに、特別な句読点があると、次のエラーが発生します。
286952044814794753 : Traceback (most recent call last):
File "C:\Python27\lib\encodings\cp850.py", line 12, in encode
return codecs.charmap_encode(input,errors,encoding_map)
UnicodeEncodeError: 'charmap' codec can't encode character u'\u201c' in position 0: character maps to <undefined>
注:先頭の長い数字は、エラーの原因となったツイートのIDです。
この問題を引き起こしている特定の文字は、角度のある(開始)二重引用符です(MS-Wordで使用されているもののように)。そのような句読点を互換性のある形式で表示する方法はありますか?理想的には、文字を省略するのではなく、置換を使用してこの種のエラーを克服し、コンテキストを維持するために、ツイートをサニタイズしたいと思います。
これがコードのコアです。
tweets=api.GetUserTimeline('BBCWorld')
try:
for tweet in tweets:
print tweet.id, ": ", (tweet.text)
except UnicodeEncodeError as uee:
print uee
ポインタをありがとう、
ミルティン