次の方法で共有


HRESULT C00CE56E MSXML で "システムで指定されたエンコードがサポートされていません" というエラー メッセージが表示される

この記事は、HRESULT が MSXML でエラー メッセージC00CE56E System Does Not Support the Specified Encoding 問題を解決するのに役立ちます。

元の製品バージョン: Microsoft XML
元の KB 番号: 304625

現象

XMLHTTP または XMLDocument::Load を使用して Web サーバーからリモート XML ドキュメントを読み込むと、次のエラー メッセージが表示されることがあります。

HRESULT C00CE56E
システムは、指定されたエンコードをサポートしていません。

このエラーは、Java ベースの中間層アプリケーション フレームワークを使用する場合に最も一般的です。

原因

バージョン 2.6 以降、MSXML はすべての XML ドキュメントを Mlang.dll 経由してエンコードを確認します。 Mlang.dll が標準以外のエンコード文字列を検出すると、エラーが返されます。

'ISO8859_1' は、Java 言語およびクラス ライブラリでの Latin-1 文字エンコード文字列の正規表現です。 ただし、インターネット割り当て番号機関によって定義される標準は、"ISO-8859-1" であり、許容される別名ではありません。

解決方法

この問題を解決するには、次のいずれかの操作を行います。

  • 関連する Java サーバー環境の文字エンコード文字列を 'ISO8859_1' から 'ISO-8859-1' に変更します。

  • を使用して IXMLDOMDocument::get_responseBody 、バイトの生バッファーとしてデータを取得します。 Microsoft Visual C++でアプリケーションを開発する場合は、データの HGLOBAL ハンドルを定義し、 を使用CreateStreamOnHGlobalしてデータの処理を容易にすることができます。

関連情報

詳細については、「 文字セット」を参照してください。