在Unicode字符串中替换换行符

15

我正在尝试替换Unicode字符串中的换行符,但好像缺少一些神奇的代码。

我的具体示例是:我正在使用AppEngine,试图将HTML页面中的标题放入模型中的db.StringProperty()中。

所以我做了这样的事情:

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

我得到了:

Property title is not multi-line

是否还有其他代码可用于替换?


打印 page_titlerepr() 并查看其中包含哪些特殊字符。 - Thomas Wouters
3个回答

22

尝试使用''.join(unicode(page_title, 'utf-8').splitlines())的方法。splitlines()函数可以让标准库来处理所有可能出现的疯狂Unicode换行符,并且你只需要使用空字符串将它们全部连接起来,即可得到单行版本。


11

unicode.splitlines()函数中,Python使用以下字符来进行拆分:

  • U+000A 换行符 (\n)
  • U+000D 回车符 (\r)
  • U+001C 文件分隔符
  • U+001D 分组分隔符
  • U+001E 记录分隔符
  • U+0085 下一行
  • U+2028 行分隔符
  • U+2029 段落分隔符

正如Hank所说,使用splitlines()函数可以让Python自动处理所有细节,但如果您需要手动操作,那么这应该是完整的列表。


这很有帮助。但是看起来splitlines()已经为我完成了它。 - Jackson Miller
没问题,我知道 splitlines() 是正确的答案;这只是为了万无一失,以防你真的需要列表。 - Ian Clelland

0

打印多行的page_titlerepr()会很有用,但显然的候选者是'\r'


我更新了我的示例,包括回车(结果相同)。 - Jackson Miller

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接