JSF页面上有一个<textarea>
元素,用户输入几行并提交表单。我期望在服务器端使用什么行分隔符?
-
rn
如果用户的操作系统是Windows,n
- 当Unix时 - 行分隔符取决于运行我的 JSF servlet 的操作系统
- 行分隔符始终
n
(Java内部一)
HTML 4.0.1规范要求CR LF ( rn
)用于应用程序/x-www-form-urlencode和multipart/form-data请求中的换行符。
Servlet 规范和 JSF 规范似乎都没有关于行分隔符的任何内容。
我认为完整的答案有点复杂:
-
@McDowell的答案涉及文本区域数据作为
POST
数据发送的情况。 在这种情况下,HTML 4 规范规定换行符被编码为 % 转义的CR LF
序列。 -
HTML 4规范不处理文本区域数据作为URL查询参数发送的情况;例如,在
GET
请求中。 -
HTML 5 规范说文本区域的"值"被转换为
CR LF
序列,它涵盖了所有情况......包括(我假设)从客户端大小的脚本访问控件值的情况。 然后,该值将在编码以进行传输时进行 % 转义。
总之,规格说CR LF
(即 rn
),他们说什么,但您可能会在某些平台上看到某些 HTML 4 或更早版本的浏览器CR
或LF
。