Python - обнаружение кодировки и преобразование в utf-8
Есть ли какой-нибудь универсальный метод для обнаружения строковой кодировки? Я пользуюсь тегами IPTC и не знаю никакой кодировки. Мне нужно обнаружить это, а затем изменить их на UTF-8.
Кто-нибудь может помочь?
4 ответа
Решение
Уже немного поздно, но есть и другое решение: попробуйте использовать pyicu.
Пример:
import icu
def convert_encoding(data, new_coding='UTF-8'):
coding = icu.CharsetDetector(data).detect().getName()
if new_coding.upper() != coding.upper():
data = unicode(data, coding).encode(new_coding)
return data
Если вы хотите сделать это с помощью cchardet, вы можете использовать эту функцию.
import cchardet
def convert_encoding(data, new_coding = 'UTF-8'):
encoding = cchardet.detect(data)['encoding']
if new_coding.upper() != encoding.upper():
data = data.decode(encoding, data).encode(new_coding)
return data