10

おそらく本当に単純で愚かな質問がありますが、どこにも答えが見つからないので、これについてかなり確信する必要があります.

さまざまなベンダーのさまざまな XML ファイルがあります。ベンダーの 1 人が、ファイルに日本語の文字を含む XML ファイルを提供してくれました。もともと、XML ファイルの処理に問題がありました ( MSXML SDKを使用しています)。文字が間違って出てきます。以下を XML ファイルに追加すると、すべてがうまく機能することがわかりました。

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

そこで、ベンダーにこれをファイルに追加するよう依頼しました。しかし、彼らは小文字のエンコーディングでそれを追加しました:

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

そして、この宣言を使用してこの新しいファイルをロードすると、この宣言が存在しない場合と同じ問題が発生します。

私が(確かに)理解しようとしているのは、そのエンコーディング属性が大文字と小文字を区別するかどうかです(またはそれ以外の問題です)。彼らが「utf-16」対「UTF-16」を置くことは重要ですか?

更新:ここに回答を投稿したこれらのアドバイスの下で、テストをセットアップして実行しました。1 つのファイルには小文字の utf-16 があり、もう 1 つのファイルには大文字が含まれていました。それ以外は、ファイルは同一でした。これは問題を解決せず、問題ではありません。私の結論は、回答に投稿された仕様が述べているように、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. SHOULD この単語、または形容詞の「RECOMMENDED」は、特定の状況では特定の項目を無視する正当な理由が存在する可能性があることを意味しますが、別のコースを選択する前に
    、完全な意味を理解し、
    慎重に検討する必要があります。
于 2009-05-28T15:38:59.330 に答える