替换Unicode字符串中的换行符

16 投票
3 回答
20210 浏览
提问于 2025-04-15 18:54

我正在尝试在一个unicode字符串中替换换行符,但似乎缺少了一些神奇的代码。

我的具体例子是,我在使用AppEngine,并试图把HTML页面中的标题放入我的模型中的一个db.StringProperty()里。

所以我做了类似这样的操作:

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

然后我得到了:

Property title is not multi-line

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

3 个回答

0

打印出页面标题的 repr()(表示形式)会很有用,因为它看起来是多行的,但明显的选择是 '\r'

12

Python在使用unicode.splitlines()这个功能时,会用到以下这些字符来分割文本:

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

正如Hank所说,使用splitlines()可以让Python帮你处理所有的细节,但如果你想手动处理的话,这就是完整的字符列表。

23

试试这个代码:''.join(unicode(page_title, 'utf-8').splitlines())。这里的splitlines()方法可以帮助你处理各种复杂的Unicode换行符,然后你只需要用空字符串把它们重新连接起来,就能得到一行的内容。

撰写回答