关于Python中的textarea \r\n或\n

4 投票
1 回答
2230 浏览
提问于 2025-04-16 05:21

我在Ubuntu系统下的Firefox浏览器中测试了代码:

前端是一个文本区域,在文本区域按下ENTER键,然后提交到服务器,

在后端你会看到字符串\r\n

r=request.POST.get("t")
r.find("\r\n")>-1:
    print "has \r\n"

我的问题是,什么时候会得到\r\n,什么时候会得到\n?这和平台有关系吗?

这很重要,因为我想用这个字符串作为正则表达式,欢迎任何建议

1 个回答

5

没错,你说得对,不同的平台对换行的处理方式是不同的:

  • 在Windows系统中,换行通常用 \r\n 来表示。
  • 在Linux、Unix和OS X系统中,换行一般用 \n 来表示。

同样,网页浏览器也倾向于使用这些规则:IE浏览器使用 \r\n 来换行,而Safari和Firefox则使用 \n

作为解决方案,可以考虑使用一些Python的函数,这些函数能够识别不同的换行编码,比如提供一种通用的换行支持。

举个例子,如果你想把一个字符串分成多行,可以使用splitlines:

lines = r.splitlines()

撰写回答