Art*_*yom 0 html validation xhtml encoding special-characters
我想创建表单验证单元,除了"常规"测试之外还检查编码.
根据这篇文章http://www.w3.org/International/questions/qa-forms-utf-8,允许的字符是CR,LF和TAB,范围为0-31,DEL = 127不允许.
另一方面,控制字符在0x80-0xA0范围内.在不同的来源,我看到他们被允许,而不是.我也看到过这与XHTML,HTML和XML不同.
有些文章告诉过FF也是允许的吗?
有人可以提供一个很好的答案来源可以给予什么,什么不是?
编辑:即使在那里http://www.w3.org/International/questions/qa-controls有些含糊不清
支持C1范围
但表显示它们是非法的,之前显示的UTF-8验证允许它们吗?
我认为你正在以错误的方式看待这个问题.您链接的资源指定哪些编码值在(X)HTML中有效,但听起来您想要验证来自Web表单的"响应" - 如各种表单控件的值,传递回您的服务器.在这种情况下,您不应该查看(X)HTML中的有效内容,而是在application/x-www-form-urlencoded中有效,以及可能还有multipart/form-data,MIME类型.元素的HTML 4.01标准<FORM>明确指出对于application/x-www-form-urlencoded,"非字母数字字符由'%HH'代替":
这是默认的内容类型.使用此内容类型提交的表单必须按如下方式编码:
- 控制名称和值将被转义.空格字符被替换为'+',然后保留字符被转义,如[RFC1738],第2.2节中所述:非字母数字字符被'%HH'替换,百分号和两个十六进制数字代表ASCII代码字符.换行符表示为"CR LF"对(即,'%0D%0A').
- 控件名称/值按它们在文档中出现的顺序列出.名称通过'='与值分隔,名称/值对通过'&'彼此分隔.
至于包含什么字符编码(即,是否%A0是不间断的空格或错误),由元素accept-charset上的属性<FORM>和响应(嗯,真的是一个GET或POST请求)Content-Type标头协商.
Postel定律:保守你所做的事; 你从别人那里接受自由.
如果您要生成供他人阅读的文档,您应该避免/逃避所有控制字符,即使它们在技术上是合法的.如果您正在解析文档,即使它们在技术上是非法的,您也应该尽力接受所有控制字符.
| 归档时间: | 
 | 
| 查看次数: | 2501 次 | 
| 最近记录: |