我有一个可能是一个非常简单,狡猾的问题,但我无法在任何地方找到答案,我需要对此非常肯定.
我有来自不同供应商的各种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,另一个大写字母.除此之外,文件是相同的.这并没有解决问题,也不是问题.我的结论是,MSXML不区分大小写,因为发布在答案中的规范说明.
我认为这个问题并不是“对于标准的案例敏感吗?”但“MSXML SDK中的编码区分大小写?”
从bytes.com开始:
The XML spec says that processors “SHOULD” be match encoding names
case-insensitively. “SHOULD” is a technical term,less strong than
“MUST”,but I can’t see any reason why a processor would not do it.
但是,我们知道在实践中这可能并非总是如此.如果你可以并排尝试,请这样做,让我们知道结果是什么.