文字列文字セットを検出する普遍的な方法はありますか? IPTCタグを使用していますが、既知のエンコーディングがありません。それを検出し、utf-8に変更する必要があります。
誰でも助けることができますか?
chardet
、エンコーディング検出器を使用したい
少し遅いですが、別の解決策もあります: pyic を使用してみてください。
例:
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