Перекрестная ссылка кодировки символов - PullRequest
1 голос
/ 26 сентября 2011

Я только что перенес базу данных, содержащую латиноамериканские топонимы, из MS Access в MySQL. При этом каждый экземпляр á был изменен на . Вот мой вопрос:

Существует ли какая-то справка для поиска, какая кодировка символов была переведена на какую другую? Например, место, где я могу ввести символ и посмотреть, как оно будет искажено после множества ошибочных переводов кодирования (например, ASCII в ISO 8859-1, ISO 8859-1 в UTF-8 и т. Д.)?

1 Ответ

1 голос
/ 26 сентября 2011

Не то, чтобы я знал, но если у вас есть список возможных кодировок, вы можете написать простую программу вроде:

for x in ENCODINGS:
    for y in ENCODINGS:
        try:
            if 'á'.encode(x) == '‡'.encode(y):
                print(x, '→', y)
        except UnicodeError:
            pass

При этом в вашем случае оказывается, что исходная кодировка является одной из:

  • mac_arabic
  • mac_centeuro
  • mac_croatian
  • mac_farsi
  • mac_iceland
  • mac_latin2
  • mac_roman
  • mac_romanian
  • mac_turkish

и неверно истолкованная кодировка является одной из:

  • CP1250
  • cp1251
  • cp1252
  • cp1253
  • cp1254
  • cp1255
  • cp1256
  • cp1257
  • cp1258
  • PalmOS

Если вы живете в "западной" локали, то mac_roman & rarr; cp1252 - наиболее вероятная возможность.

...