这是W3C的公共bugzilla错误跟踪程序的存档快照,该程序于2019年4月退役。请参阅主页了解更多详细信息。

错误6259 -直接输入中字符编码的处理可能会令人困惑
总结: 直接输入中的字符编码处理可能会令人困惑
状态: 断然的固定的
别名:
产品: 验证程序
分类: 未分类
组件: 检查(显示其他错误)
版本: 头部
硬件: 个人计算机Windows NT(Windows NT)
: 第2页正常的
目标里程碑: ---
受让人: 这个bug还没有所有者可以使用
QA联系人: qa-dev跟踪
网址:
白板:
关键词:
: 6458 (查看为错误列表)
取决于:
阻碍:
 
报道: 2008年11月30日01:07 UTC哈拉尔德-伦
被改进的: 2009年1月28日下午15:35(历史)
3用户(显示)

另请参阅:


附件

说明 哈拉尔德-伦 2008年11月30日01:07:16 UTC
通过直接HTML输入进行验证时,我得到以下结果:此文档已成功检查为HTML 4.01 Transitional!结果:通过通过url验证同一HTML文档时,我得到以下结果:此文档被临时检查为HTML 4.01 Transitional暂时通过,1个警告找不到字符编码!回到UTF-8。因此,在使用直接HTML输入验证时,不会检查字符编码。当通过直接HTML输入进行验证时,也应该检查字符编码。通常我通过直接输入来验证我的HTML文档。只有在验证成功后,我才将它们上传到服务器。
评论1 奥利维尔·特雷奥 2008年12月2日16:22:52 UTC
(答复注释#0)>因此,在使用直接HTML验证时不检查字符编码>输入。Imho验证时还应检查字符编码>直接HTML输入。当您通过URI进行验证时,验证器会通过HTTP检索资源。它检索的是字节,必须将其解码为字符,因此了解字符编码很重要,这要归功于服务器发送的HTTP标头中的charset=参数,或HTML中的<meta>信息,或其他可能的来源。同样,在文件上传方面,也有一些小的区别(没有web服务器,但web浏览器基本上扮演着这个角色)。然而,当使用直接输入时,您给验证器的不是一系列字节:您将字符复制并粘贴到验证器主页上的表单中。该验证器页面是用utf-8编码的,这意味着提交给验证器的表单将自动使用utf-8。而且,无论您的原始内容是用什么编码的,也不管存在什么元信息。验证器需要在“直接输入”模式下检查编码吗?不,根据以上内容。它应该这样做吗?这里的答案也是“不”。假设您的文档是用ISO-9959-1(也称为latin-1)编码的。它在您的web服务器上正确地用作latin-1,也有一个带有该信息的<meta>标记。一切都很好。现在,假设您获取了页面源,将其复制到验证器的“直接输入”形式中:然后,如上所述,标记自动成为utf-8中的字符。当消息来源说“iso-8859-1”时,验证器是否应该抱怨它正在接收utf-8内容?当然不是,这是错误的,令人困惑。换句话说,直接输入和通过UIR验证是一种非常不同的范式,这种差异在处理编码方面表现得最为明显。它令人困惑,如果你能想出任何方法来减少困惑,欢迎提出想法。
评论2 多米尼克·哈泽尔·马塞乌克斯 2008年12月2日17:42:57 UTC
在输入表单验证中,如果没有<meta-http-equiv/>/XML声明,可能会出现警告:“警告:文档中没有声明内容编码。”。同样,当声明编码时,可能会出现警告(如果存在这种情况,则会出现“通知”?),说明文档的正确编码没有得到验证。
评论3 哈拉尔德-伦 2008年12月2日18:43:10 UTC
感谢您的快速回复:o)好的,(当然)通过URI或直接输入进行验证是完全不同的范例。我也同意“多米尼克·哈泽尔·马西厄”的观点。通过直接输入进行验证时,如果没有<meta-http-equiv,则可能会显示警告或信息/>这使得它不那么令人困惑+帮助web管理员在上传到web服务器之前进行验证。警告应准确包含“Olivier Thereaux”在这里所说的内容,因此不可能忘记这一点,每个人都会理解(imho)。通过直接输入进行验证是一个方便的实用程序,可以从每个源快速进行验证,但它不应该假设编码(imho)。因此,只需调整该功能。当然,通过URI进行验证是一样的。不要在意答案是什么:w3.org提供了很棒的东西,我希望更多的网络开发人员、网页设计师和网站管理员使用它,以便为所有人提供“更好”的网页(无论用户使用哪种浏览器)。
评论4 奥利维尔·特雷奥 2008年12月2日20:02:12 UTC
(答复评论#2)>在输入表单验证中,当没有<meta-http-equiv时可能会出现警告>/>/XML声明存在:“警告:未声明内容编码>在文档中。>问题)。正确的。如果(且仅当)我们确实希望建议在文档级别声明编码,我们可以这样做****XML声明是text/html格式的责任,至少只要IE6有这么大的市场份额(doctype之前的任何内容都表示quirks模式)。<meta>中的字符集似乎没什么问题,除了它是有史以来最被误用/键入错误的html结构(hixie研究的线索链接)有一个<meta>可能是转码服务器的一个问题,HTTP和<meta>different似乎也很普遍,参见例如。http://dev.opera.com/articles/view/mama-document-encodings/#agreeOTOH,我明白了。由于这些原因,您应该始终确保编码信息也在文档中声明。在里面http://www.w3.org/International/tutorials/tutorial-char-enc/#Slide0250但即使对我来说,这个建议也令人困惑。我想关于它的“信息”会很好。算法可能不太简单,无法添加到验证器中,但这是可行的。>同样,当声明编码时,可能会出现警告(如果>这样的事情存在吗?)说文档的正确编码不是>已验证。很好。在我们解决可用性问题之前,我将重新打开这个bug。
评论5 奥利维尔·特雷奥 2009年1月20日15:15:16 UTC
***错误6458已被标记为此错误的重复***
评论6 奥利维尔·特雷奥 2009年1月28日15:35:02 UTC
(答复评论#4)>在我们解决可用性问题之前,我将重新打开这个bug。我在验证结果中添加了两个注释输出:*建议在没有字符集信息时在文档中添加字符集信息*直接输入模式下UTF-8力的解释http://lists.w3.org/Archives/Public/www-validator-cvs/2009年1月/0195.html警告的措辞肯定可以改进,但我相信这解决了这个错误报告中提出的问题。