我对与 HTML 相关的整个编码问题有点困惑。我不是指标头中的字符集或 XML 序言中的编码。我明白了。让我解释一下。
当“mailto:”与表单中的锚点或提交按钮一起使用时,空格将编码为“%20”,“换行/回车/换行/行尾”将编码为%0A。当 enctype 属性用于值为“application/x-www-form-urlencoded”的表单时,空格将被编码为“+”,特殊字符、撇号、百分比和其他符号将转换为 ASCII 十六进制等价物。值“application/x-www-form-urlencoded”是 URL 编码吗?那么为什么第一个为“%20”,第二个为“+”。
"mailto:[email protected][email protected]&[email protected]&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>
并且上面的空格将被编码为“+”。我错过了什么吗?
提前致谢。
URI(如您的 mailto 示例)应根据 RFC 3986 进行编码,该 RFC 3986 指定将空格编码为 %20。
另一方面,FORM 数据的格式根据 HTML 规范定义的规则编码为 application/x-www-form-urlencoded。 (例如,参见HTML 4.01 规范第 17.13.3.3 节.) 这指定空格将被翻译为 + 符号。
因此,虽然 URI 和表单数据之间的百分比编码类似,但空格字符的处理方式有所不同。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)