MSXML ile HRESULT C00CE56E 'Sistem Belirtilen Kodlamayı Desteklemiyor' hata iletisi

Bu makale, HRESULT'un MSXML ile hata iletisi C00CE56E System Does Not Support the Specified Encoding sorununu çözmenize yardımcı olur.

Orijinal ürün sürümü: Microsoft XML
Özgün KB numarası: 304625

Belirtiler

XmlHTTP veya XMLDocument::Load kullanarak bir Web sunucusundan uzak XML belgesi yüklediğinizde, aşağıdaki hata iletisini alabilirsiniz:

HRESULT C00CE56E
Sistem belirtilen kodlamayı desteklemiyor.

Bu hata en yaygın olarak Java tabanlı bir orta katman uygulama çerçevesi kullandığınızda ortaya çıkar.

Neden

2.6 sürümünden itibaren MSXML, kodlamalarını doğrulamak için tüm XML belgelerini Mlang.dll geçirir. Mlang.dll standart olmayan bir kodlama dizesiyle karşılaşırsa bir hata döndürür.

'ISO8859_1', Java dili ve sınıf kitaplıklarındaki Latin-1 karakter kodlama dizesinin kurallı gösterimidir. Ancak İnternet Tarafından Atanan Numaralar Yetkilisi tarafından tanımlanan standart, kabul edilen diğer ad olmayan 'ISO-8859-1'dir.

Çözüm

Bu sorunu çözmek için aşağıdakilerden birini yapın:

  • İlgili Java sunucu ortamındaki karakter kodlama dizesini 'ISO8859_1' olan 'ISO-8859-1' olarak değiştirin.

  • Verileri bayt ham arabelleği olarak almak için kullanın IXMLDOMDocument::get_responseBody . Uygulamayı Microsoft Visual C++'da geliştiriyorsanız, verileriniz için bir HGLOBAL tanıtıcısı tanımlayabilir ve verileri işlemeyi kolaylaştırmak için kullanabilirsinizCreateStreamOnHGlobal.

Başvurular

Daha fazla bilgi için bkz. Karakter Kümeleri.