Обнаружить кодировку и преобразовать в utf-8 в Python?
Есть ли какой-либо универсальный метод для определения строковой кодировки? я пользовательские теги IPTC и не имеют известной кодировки. Мне нужно его обнаружить, а затем изменить их на utf-8.
Кто-нибудь может помочь?
Ответ 1
Вы хотите использовать chardet, детектор кодирования
Ответ 2
Немного поздно, но есть и другое решение: попробуйте использовать 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
Ответ 3
Если вы хотите сделать это с помощью 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