你需要编码,你第一个文本,然后再进行解码的人物:
>>> print ''.join(character_swap.get(ch.encode('utf8'), ch) for ch in text.decode('utf8'))
idzie waz waska drozka
其因的Python列表理解不默认编码你的Unicode,实际上你在做她的是:
>>> [i for i in text]
['i', 'd', 'z', 'i', 'e', ' ', 'w', '\xc4', '\x85', '\xc5', '\xbc', ' ', 'w', '\xc4', '\x85', 's', 'k', '\xc4', '\x85', ' ', 'd', 'r', '\xc3', '\xb3', '\xc5', '\xbc', 'k', '\xc4', '\x85']
而对于一个性格像ą
我们:
>>> 'ą'
'\xc4\x85'
正如你可以在列表解析蟒之内看到2部分\xc4
和\x85
分裂它。所以得到的是骑您可以通过utf8
encocding第一解码文本:
>>> [i for i in text.decode('utf8')]
[u'i', u'd', u'z', u'i', u'e', u' ', u'w', u'\u0105', u'\u017c', u' ', u'w', u'\u0105', u's', u'k', u'\u0105', u' ', u'd', u'r', u'\xf3', u'\u017c', u'k', u'\u0105']
你到底想干什么? –
您可以在代码中看到将另一个字符换成另一个更改±至a,ż至z和ó至o(波兰语特定字母) – Gunnm
@Gunnm提供预期输出 – The6thSense