我试图分析数据集中使用不同(混合)编码的数据集中的名称。它包含地名和许多其他地理空间数据。运行脚本后,我得到一个与地理位置相匹配的地名列表,即[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和Republic Federative do Brasil。
有没有一种方法可以捕获\u0102\u0160并将其转换为\xe9,而不必为每个字母创建单独的.replace()规则?
发布于 2016-03-29 06:22:25
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éhttps://stackoverflow.com/questions/36273527
复制相似问题