分析具有不同编码的unicode字符的数据集会得到奇怪的结果

2024-09-29 23:18:59 发布

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

我试图分析数据集中使用不同(混合)编码的名称。它包含地名和许多其他地理空间数据。运行脚本后,我得到一个与地理位置匹配的地名列表,即[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 SantoRepublic Federative do Brasil

有没有一种方法可以捕获\u0102\u0160并将其转换为\xe9,而不必为每个字母创建单独的.replace()规则?你知道吗


Tags: 数据br编码esdobrazilbrasilesp
1条回答
网友
1楼 · 发布于 2024-09-29 23:18:59

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é

相关问题 更多 >

    热门问题