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,另一个为大写。除此之外,文件是相同的。这没有解决问题,也不是问题。我的结论是 MSXML 不区分大小写,因为在答案中发布的规范指出。

4

2 回答 2

11

我想问题不是真的“标准区分大小写吗?” 但是“ MSXML SDK中的编码是否区分大小写?”

来自bytes.com

XML 规范说处理器“应该”不区分大小写地匹配编码名称。“应该”是一个技术术语,不如“必须”强,但我看不出处理器不这样做的任何原因。

然而,我们知道这在实践中可能并不总是正确的。如果您可以同时尝试两者,请这样做并告诉我们结果如何。

于 2009-05-28T15:40:15.943 回答
10

XML 规范

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

因此,根据RFC 2119,不需要但建议不区分大小写:

  1. 应该这个词,或形容词“推荐”,意味着在特定情况下可能存在忽略
    特定项目的正当理由,但在选择不同的课程之前必须理解并
    仔细权衡全部含义。
于 2009-05-28T15:38:59.330 回答