通过html表单提交时,各种换行符是否转换为\ r \n?

Que*_*low 8 html forms unicode newline enctype

w3c 的规范声明如下形式enctype=application/x-www-form-urlencoded:

这是默认的内容类型.使用此内容类型提交的表单必须按如下方式编码:

1)控制名称和值被转义.空格字符由+', and then reserved characters are escaped as described in [RFC1738], section 2.2: Non-alphanumeric characters are replaced by %HH' 替换,百分号和两个十六进制数字表示字符的ASCII代码.换行符表示为"CR LF"对(即,'%0D%0A').

2)控件名称/值按它们在文档中出现的顺序列出.名称通过=' and name/value pairs are separated from each other by&' 与值分隔.

Unicode中有几种行终止符.即:

 LF:    Line Feed, U+000A
 VT:    Vertical Tab, U+000B
 FF:    Form Feed, U+000C
 CR:    Carriage Return, U+000D
 CR+LF: CR (U+000D) followed by LF (U+000A)
 NEL:   Next Line, U+0085
 LS:    Line Separator, U+2028
 PS:    Paragraph Separator, U+2029
Run Code Online (Sandbox Code Playgroud)

所有这些都转换为CR LF(\r\n)?

bob*_*nce 3

这些都转成CR LF (\r\n)了吗?

没有。这里的 HTML4 规范并不清楚什么是换行符,但是浏览器做什么,HTML5 已经标准化的是只涉及 CR 和 LF:

替换后面没有“LF”(U+000A) 字符的每个出现的“CR”(U+000D) 字符,以及前面没有“CR”的每个出现的“LF”(U+000A) 字符( U+000D) 字符,由由 U+000D 回车“CRLF”(U+000A) 字符对组成的两个字符的字符串组成

(IE 并不完全符合这一点,因为它将 LFCR 视为单个换行符。但它已经足够接近了。)