使用具有不同编码的unicode字符分析数据集会产生奇怪的结果

时间:2016-03-29 00:39:44

标签: python unicode encoding

我正在尝试分析数据集中使用不同(混合)编码的数据集中的名称。它包含地名,以及许多其他地理空间数据。运行脚本后,我会得到一个与地理位置匹配的地名列表,即[u'BR', u'BR-ES', u'BRA', u'Brasil', u'Brazil', u'ES', u'Espirito Santo', u'Esp\xedrito Santo', u'Federative Republic of Brazil', u'Guarapari', u'Rep\xfablica Federativa do Brasil', u'gpxupload.py']。到目前为止一切都很好但有时数据集会给我u'Taubat\u0102\u0160'这样的结果,这些结果在分析中被视为TaubatĂŠ而不是正确的值Taubaté,前一个示例产生Espírito Santo和{{1 }}

有没有办法捕获Republic Federative do Brasil并将其转换为\u0102\u0160,而无需为每个字母创建单独的\xe9规则?

1 个答案:

答案 0 :(得分:1)

使用错误的编解码器解码了

u'Taubat\u0102\u0160'。它实际上是UTF-8,但解码为' iso-8859-2'。理想情况下,首先正确解码,但以下内容可以解决错误:

>>> u'Taubat\u0102\u0160'.encode('iso-8859-2').decode('utf8')
u'Taubat\xe9'
>>> print(u'Taubat\u0102\u0160'.encode('iso-8859-2').decode('utf8'))
Taubaté