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
してデータの処理を容易にすることができます。
関連情報
詳細については、「 文字セット」を参照してください。