我正在创建一个字典,要求字符串的每个字母用空格分隔。我正在使用加入。问题是当字符串包含非ascii字符时。加入将它们分成两个字符,结果是垃圾。
示例:
>>> word = 'məsjø'
>>> ' '.join(word)
给我:
'm \xc9 \x99 s j \xc3 \xb8'
当我想要的是:
'm ə s j ø'
甚至:
'm \xc9\x99 s j \xc3\xb8'
答案 0 :(得分:3)
你应该使用unicode字符串,即
word = u'məsjø'
不要忘记在
开头设置Python源文件的编码# -*- coding: UTF-8 -*-
(甚至不要考虑使用UTF-8以外的东西。;))
更新:这仅适用于Python< 3.如果您使用的是Python> = 3,那么您可能不会遇到这些问题。因此,如果升级到3.x是一个选项,那就是可行的方法 - 不幸的是,在某些情况下,由于库依赖性等原因,可能不会这样。
正如评论中所提到的,编码问题也可能来自不同配置的终端,尽管这显然不是问题所在。