XML声明标记是否区分大小写?

10

我有一个可能非常简单但我无法在任何地方找到答案的问题,而且我需要对此相当确定。

我有来自各种供应商的各种 XML 文件。其中一个供应商提供了一个带有日文字符的 XML 文件。起初,我在处理 XML 文件时遇到了一些问题(我正在使用 MSXML SDK)。字符会显示不正确。我发现如果在 XML 文件中添加以下内容,一切都很顺利。

<?xml version="1.0" encoding="UTF-16"?>

于是我请求供应商将这加入到他们的文件中。但他们使用小写编码进行添加:

<?xml version="1.0" encoding="utf-16"?>

当我使用这个声明加载新文件时,我遇到了和没有声明时一样的问题。

我试图弄清楚的是(肯定地),这个编码属性是否区分大小写(或者说是否有问题)。"utf-16" 和 "UTF-16"放置的位置有影响吗?

更新:在这些回答者的建议下,我进行了测试。一个文件使用小写的utf-16,另一个使用大写的UTF-16。除此之外,这两个文件是相同的。这并没有解决问题,而且也不是问题所在。我的结论是,与本文中提到的规范不同,MSXML 不区分大小写。


显然,如果问题在一个版本中消失而在另一个版本中没有消失,则这是有关系的… - workmad3
2个回答

11

我想问题不应该是“标准是否区分大小写? ”,而应该是“在MSXML SDK中编码是否区分大小写?”

来自bytes.com的信息:

XML规范指出解析器“应该”不区分大小写地匹配编码名称。“应该”是一个技术术语,比“必须”弱,但我看不出为什么处理器不这样做。

然而,我们知道在实践中这并不总是正确的。如果您可以并行尝试两个,请务必这样做,并让我们知道结果。


我能做到,也会去做。只是需要花费相当多的精力来设置它。我希望有人对MSXML有详细的了解... - Frank V

10

根据XML规范

XML processors SHOULD match character encoding names in a case-insensitive way

根据RFC 2119规定,它不是必需的,但建议不区分大小写:

  1. SHOULD这个词,或者形容词“RECOMMENDED”,意思是在特殊情况下可能存在忽略特定项的有效原因,但必须理解全面影响并在选择其他方案之前进行仔细权衡。

尽管你和JoshJordan的答案几乎相同,但我会把“答案”给他,因为他指出实际情况可能并非如此,并且我们应该尝试一边倒。但是,我很感激你留下了一个合适的答案,并且我会点赞以示支持。再次感谢。 - Frank V

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接