每当看到编码差异时,如何遍历字符串并插入空格?例如,输入:

Bar bar black sheep就是其中 famous 的一家club

应该产生以下输出:

Bar bar black sheep 就是其中 famous 的一家 club

我已经尝试了以下方法,但是有一种更简单的方法可以进行以下操作吗?

# -*- coding: utf8 -*-
sentence = 'Bar bar black sheep就是其中 famous 的一家club'

currIsAscii = None
prevIsAscii = None
newsentence = ""

for i in sentence:
  try:
    i.decode('ascii')
    currIsAscii = True
  except:
    currIsAscii = False
  if prevIsAscii != currIsAscii:
    newsentence+=" "
    newsentence+=i
  else:
    newsentence+=i
  prevIsAscii = currIsAscii

  while "  " in newsentence:
    newsentence = newsentence.replace("  ", " ")

print newsentence.strip()

最佳答案

This是Ned Batchelder关于所有这些编码优点的相当不错的pycon谈话,它对我很有帮助,我希望对您也是如此。

10-06 08:49