微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

浏览器是否发送“ \\\\ r \\\\ n”或“ \\\\ n”,或者取决于浏览器?

如何解决浏览器是否发送“ \\\\ r \\\\ n”或“ \\\\ n”,或者取决于浏览器?

| 这个问题困扰了我一百万年...每当我创建一个文本区域允许多行的网站(例如用户个人资料的“ Bio”)时,我总是最终写出以下偏执狂码:
// C# code sample...
bio = bio.Replace(\"\\r\\n\",\"\\n\").Replace(\"\\r\",\"\\n\");
bio = Regex.Replace(@\"\\n{2,}\",\"\\n\\n\");
那么,如果有多行,浏览器会为ѭ1发送什么?     

解决方法

        HTTP和MIME规范指定标头行必须以\\ r \\ n结尾,但是对于该内容的处理方式尚不明确(有些人会争辩说是否不清楚)。一个TEXTAREA。 (例如,请参见HTML工作组中的有关此问题的主题。) 这是HTTP / 1.1规范中有关消息头的引文:   邮件标题字段的行终止符是序列CRLF。但是,我们建议应用程序在解析此类标头时将单个LF识别为行终止符,并忽略前导CR。 我认为这通常是一个不错的策略:对您的产品严格要求,但接受的要求要宽松。您应该假定您将收到各种行终止符。 (请注意,除了CRLF和LF之外,Mac OS-9单独使用CR,并且周围还有一些。Unicode标准(第5.8节)指定了应被视为行终止符的各种字符序列;这里有他们的清单。)     ,           如果ѭ2多行,浏览器会发送什么? 所有现代浏览器都发送CRLF(
\\r\\n
)。但是,这还没有得到令人满意的标准化,因此我绝对认为有必要对所有多行输入文本的换行进行规范化。 当通过JavaScript读取值而不是直接从表单提交值时,浏览器的行为会有所不同。 IE和Opera返回带有CRLF的字符串; Firefox和WebKit返回LF。因此,在JavaScript / XMLHttpRequest帮助下提交的任何形式都可能以任何一种形式出现。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。