Почему моя расшифрованная строка Windows-1252 отображается в словаре как значение Юникода, а не как значение, хотя я пытаюсь декодировать его как UTF-8?
В моем приложении - следуя рекомендациям Неда Батчелдера о создании сэндвича с юникодом - я сначала пытаюсь декодировать из Windows-1252 в UTF-8:
row[field] =row[field].decode('cp1252').encode('utf-8')
Позже, когда я хочу отправить свои данные в конечную точку, я декодирую UTF-8:
row[field] = fld.decode('utf-8')
Когда я печатаю только поле, содержащее ошибочные символы Windows-1252, оно интерпретирует их следующим образом:
print row['dash']
# as well — ... “the intent was"
Но когда я пытаюсь напечатать весь словарь, я получаю значения Unicode:
print row
# as well \xe2\x80\x93 ... \xe2\x80\x9cthe intent was\xe2\x80\x9d
Мне нужны сами символы wp-1252 или их эквиваленты, такие как прямая кавычка вместо левой или правой кавычки.