Преобразование символов из файла, отличного от "utf-8", в английские эквивалентности в python

У меня есть такие строки в моем файле:

M  Aad                                  4                                             $
M  Aadam                                          1                                   $
F  Aadje                                1                                             $
M  Ådne                      +                 1                                      $

Когда я запускаю следующий код;

#!/usr/bin/python
# -*- coding: utf-8 -*-

import csv, unicodedata, urllib
from unidecode import unidecode
from textblob import TextBlob

with open('names.csv', 'rb') as f:
    reader = csv.reader(f)
    my_list = list(reader)

for a in range(len(my_list)):
        name = my_list[a][0]
        name = unicode(name,'ISO-8859-15')
        print name

Я получаю такой вывод в несколько строк:

F  <Z^>ydr<edeg>                                      1                                 $

В этом случае есть много схожих проблем со стековым потоком, но их решения не подошли к моей проблеме.

Как я могу исправить эту проблему?

1 ответ

Похоже, что ваш ввод на самом деле не UTF-8, а ISO-8859-* (возможно, ISO-8859-15 или ISO-8859-1), 0xC5 - это кодировка ISO для Å (кодировка UTF-8 быть 0xC3 0xA5).

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