我对与HTML相关的整个编码问题感到有点困惑。我指的不是头中的字符集,也不是XML前言中的编码。我明白了。让我解释一下。
当"mailto:“与表单中的锚点或提交按钮一起使用时,空格编码为"%20”,“换行符/回车符/换行符/行尾”编码为%0A。而当在值为"application/x-www- form -urlencoded“的表单上使用enctype属性时,空格被编码为"+”,特殊字符、撇号、百分号和其他符号被转换为它们的ASCII十六进制等效项。值"application/x-www-form-urlencoded“是URL编码吗?那么为什么第一个是"%20“,第二个是"+”。
"mailto:someone@someplace.com?cc=carbon@copy.com&bcc=blind@carbobcopy.org&subject=This%20is%20the%20subject&body=This%20is%20the%body%0AThis%20is%20the%20second%20paragraph"在上面的示例中,主题中的空格被编码为%20,主体中的新行被编码为%0A。
<form enctype="application/x-www-form-urlencoded"></form>并且在上面的空白处将被编码为"+“。我是不是遗漏了什么?
提前谢谢。
发布于 2011-05-05 22:40:17
URI(就像您的mailto示例一样)应该根据RFC3986进行编码,RFC3986指定将空格编码为%20。
另一方面,根据HTML规范定义的规则,表单数据的格式被编码为application/x-www- FORM -urlencoded。(例如,请参阅section 17.13.3.3 of the HTML 4.01 specification。)这指定要将空格转换为+符号。
因此,虽然URI和表单数据之间的百分比编码类似,但空格字符的处理方式不同。
https://stackoverflow.com/questions/5899297
复制相似问题