在Python中检测字符集并转换为utf-8?

2024-04-29 08:45:37 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有检测字符串字符集的通用方法?我使用IPTC标签,没有已知的编码。我需要检测到然后把它们换成utf-8。

有人能帮忙吗?


Tags: 方法字符串编码标签utf字符集iptc
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

现在有点晚了,但还有另一个解决方案:尝试使用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

你想使用^{},一个编码检测器

相关问题 更多 >