在python中的非ascii字符之间插入空格

时间:2012-01-26 17:39:56

标签: python unicode utf-8 whitespace

我正在创建一个字典,要求字符串的每个字母用空格分隔。我正在使用加入。问题是当字符串包含非ascii字符时。加入将它们分成两个字符,结果是垃圾。

示例:

>>> word = 'məsjø'
>>> ' '.join(word)

给我:

'm \xc9 \x99 s j \xc3 \xb8'

当我想要的是:

'm ə s j ø'

甚至:

'm \xc9\x99 s j \xc3\xb8'

1 个答案:

答案 0 :(得分:3)

你应该使用unicode字符串,即

word = u'məsjø'

不要忘记在

开头设置Python源文件的编码
# -*- coding: UTF-8 -*-

(甚至不要考虑使用UTF-8以外的东西。;))

更新:这仅适用于Python< 3.如果您使用的是Python> = 3,那么您可能不会遇到这些问题。因此,如果升级到3.x是一个选项,那就是可行的方法 - 不幸的是,在某些情况下,由于库依赖性等原因,可能不会这样。

正如评论中所提到的,编码问题也可能来自不同配置的终端,尽管这显然不是问题所在。