[MSXML] MSXML のエラー メッセージ HRESULT C00CE56E "指定したエンコードはシステムでサポートされていません。"

現象

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

指定したエンコードはシステムでサポートされていません。
このエラーは、Java ベースの中間層アプリケーション フレームワークを使用している場合に多く見られます。

原因

バージョン 2.6 の時点の MSXML では、すべての XML ドキュメントは Mlang.dll を通過し、エンコーディングが検証されます。Mlang.dll で標準以外のエンコーディング文字列が検出されると、エラーが返されます。


Java 言語およびクラス ライブラリでの、ラテン-1 文字エンコーディング文字列の標準の表記は、"ISO8859_1" です。一方、Internet Assigned Numbers Authority が定める標準は "ISO-8859-1" で、 "ISO8859_1" は非公認の別名です 。

解決方法

この問題を解決するには、次のいずれかを実行します。
  • 関連する Java サーバー環境の文字エンコーディング文字列を、"ISO8859_1" から "ISO-8859-1" に変更します。 または


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

状況

この動作は仕様です。

関連情報

詳細については、次の Web サイトを参照してください。

関連情報

この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 304625 (最終更新日 2001-11-05) をもとに作成したものです。


プロパティ

文書番号:304625 - 最終更新日: 2003/04/30 - リビジョン: 1

フィードバック