替换Unicode字符串中的换行符

时间:2010-02-04 17:08:40

标签: python google-app-engine unicode

我正在尝试替换unicode字符串中的换行符,似乎缺少一些魔法代码。

我的具体例子是我正在使用AppEngine并尝试将HTML页面中的标题放入我模型中的db.StringProperty()

所以我做了类似的事情:

link.title = unicode(page_title,"utf-8").replace('\n','').replace('\r','')

我得到了:

Property title is not multi-line

我应该使用其他代码进行替换吗?

3 个答案:

答案 0 :(得分:19)

试试''.join(unicode(page_title, 'utf-8').splitlines())splitlines()应该让标准库处理所有可能的疯狂Unicode换行符,然后你只需将它们与空字符串连接起来就可以获得单行版本。

答案 1 :(得分:8)

Python使用这些字符在unicode.splitlines()中分割:

  • U + 000A LINE FEED(\ n)
  • U + 000D CARRIAGE RETURN(\ r)
  • U + 001C FILE SEPARATOR
  • U + 001D GROUP SEPARATOR
  • U + 001E RECORD SEPARATOR
  • U + 0085 NEXT LINE
  • U + 2028 LINE SEPARATOR
  • U + 2029 PARAGRAPH SEPARATOR

正如汉克所说,使用splitlines()将让Python为您处理所有细节,但如果您需要手动完成,那么这应该是完整列表。

答案 2 :(得分:-1)

打印被视为多行的page_title的repr()会很有用,但显而易见的候选人将是'\r'