これが私のシナリオです。Unicode 文字列のリストがあります。「input」という名前の utf8 文字列を受け取り、それをリスト内の残りの要素とともにログに記録したいと考えています。デコードして Unicode オブジェクトを取得しますが、リストに追加すると、その型が "str" に変わります。ここで何が起きてるの?
a_list = [u"ááááá", u"eééééée"]
#'input' is a utf8 str
obj = input.decode("utf-8")
log.debug(type(obj))
log.debug(obj)
a_list.append(obj)
for elem in a_list:
log.debug(type(elem))
ログ:
DEBUG - <type 'unicode'>' # obj
<(THIS IS ONLY FOR SIMPLIFY) obj with accents (unicode chars)>
DEBUG - <type 'unicode'>'
DEBUG - <type 'unicode'>'
DEBUG - <type 'str'>' # ------> obj's type changed!!!
編集: Python 2.7.3
入力は、Flask マイクロフレームワークの要求オブジェクトからの「request.data」です。