在Python中为非ASCII字符插入空格
我正在创建一个字典,需要把一个字符串中的每个字母用空格分开。我使用的是连接(join)的方法。问题是,当字符串里有非ASCII字符时,连接会把它们拆分成两个字符,结果就变得很糟糕。
举个例子:
>>> word = 'məsjø'
>>> ' '.join(word)
结果是:
'm \xc9 \x99 s j \xc3 \xb8'
而我想要的是:
'm ə s j ø'
或者甚至:
'm \xc9\x99 s j \xc3\xb8'
1 个回答
3
你应该使用Unicode字符串,也就是这样:
word = u'məsjø'
别忘了在你的Python源文件开头设置编码,使用:
# -*- coding: UTF-8 -*-
(别想用其他编码,UTF-8才是王道哦;)
更新:这只适用于Python 3之前的版本。如果你在用Python 3及以上版本,可能根本不会遇到这些问题。所以如果可以升级到3.x,那就升级吧——不过有时候因为一些库的依赖关系,可能不能升级,这就比较麻烦了。
正如评论中提到的,编码问题也可能是因为终端的配置不同,不过在这里显然不是这个问题。