Fix tried_encodings scope

This commit is contained in:
Rick Mak
2011-08-18 14:42:35 +08:00
parent 820e2c73e6
commit d26f3333e4
+4 -3
View File
@@ -430,23 +430,24 @@ class Response(object):
2. every encodings from <meta ... charset=XXX>
3. fall back and replace all unicode characters
"""
tried_encodings = []
# Try charset from content-type
encoding = self.get_encoding_from_content_type()
if encoding:
try:
return unicode(content, encoding)
except UnicodeError:
self.tried_encodings.append(encoding)
tried_encodings.append(encoding)
# Try every encodings from <meta ... charset=XXX>
encodings = self.get_encodings_from_content(content)
for encoding in encodings:
if encoding in self.tried_encodings:
if encoding in tried_encodings:
continue
try:
return unicode(content, encoding)
except UnicodeError:
self.tried_encodings.append(encoding)
tried_encodings.append(encoding)
# Fall back:
return unicode(content, encoding, errors="replace")