Почему моя расшифрованная строка Windows-1252 отображается в словаре как значение Юникода, а не как значение, хотя я пытаюсь декодировать его как UTF-8? - PullRequest
0 голосов
/ 21 ноября 2018

В моем приложении - следуя рекомендациям Неда Батчелдера о создании сэндвича с юникодом - я сначала пытаюсь декодировать из 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 сами или их эквиваленты, такие как прямая кавычка вместо левой или правой кавычкизнак.

...