UnicodeEncodeError が出てくる!

paraches2010-05-14

前回Amazon からデータを呼び出す事はできたので、後は綺麗に並べて csv ファイルとして書き出すだけだったのだけど、そこで躓いた。
こんなエラーが出てくる。

Traceback (most recent call last):
  File "AWStest6.py", line 169, in <module>
    csvFile.writerow(rowList)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)

ん、なに???
ストリングの 0文字目から 2文字目が ascii なのに 128より大きい!って意味? わからない…。
で、ググってみて見つけたのがココ。かなり詳しく書いてあって成る程な〜なんて思いながら読んだんだけど、結局は解決できなかった。

csv だからかな〜とちょっと調べてみたのだけど、ココにはしっかりこんな事が書いてあるし。

ノート このバージョンの csv モジュールは Unicode 入力をサポートしていません。また、現在のところ、 ASCII NUL 文字に関連したいくつかの問題があります。従って、安全を期すには、全ての入力を UTF-8 または印字可能な ASCII にしなければなりません。これについては 使用例 節の例を参照してください。これらの制限は将来取り去られることになっています。

って事は、csv で書き出す前にストリングを UTF-8 にして csv.writerow に渡せば良いんだよね? が、しかし、そのストリングを UTF-8 にする部分でどうしても駄目…。