在Python中为非ASCII字符插入空格

0 投票
1 回答
1752 浏览
提问于 2025-04-17 11:09

我正在创建一个字典,需要把一个字符串中的每个字母用空格分开。我使用的是连接(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,那就升级吧——不过有时候因为一些库的依赖关系,可能不能升级,这就比较麻烦了。

正如评论中提到的,编码问题也可能是因为终端的配置不同,不过在这里显然不是这个问题。

撰写回答