Почему моя расшифрованная строка 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 или их эквиваленты, такие как прямая кавычка вместо левой или правой кавычки.

0 ответов

Другие вопросы по тегам