替换Unicode字符串中的换行符

Jac*_*ler 14 python unicode google-app-engine

我试图替换unicode字符串中的换行符,似乎缺少一些魔法代码.

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

所以我做了类似的事情:

link.title = unicode(page_title,"utf-8").replace('\n','').replace('\r','')
Run Code Online (Sandbox Code Playgroud)

我得到:

Property title is not multi-line
Run Code Online (Sandbox Code Playgroud)

是否还有其他代码我应该用于替换?

Han*_*Gay 21

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


Ian*_*and 10

Python使用这些字符进行拆分unicode.splitlines():

  • U + 000A LINE FEED(\n)
  • U + 000D CARRIAGE RETURN(\ r)
  • U + 001C文件分离器
  • U + 001D GROUP SEPARATOR
  • U + 001E记录分离器
  • U + 0085 NEXT LINE
  • U + 2028线路分离器
  • U + 2029 PARAGRAPH SEPARATOR

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