HRESULT C00CE56E message d’erreur « Le système ne prend pas en charge l’encodage spécifié » avec MSXML
Cet article vous aide à résoudre le problème lié au fait que HRESULT C00CE56E System Does Not Support the Specified Encoding
message d’erreur avec MSXML.
Version d’origine du produit : Microsoft XML
Numéro de la base de connaissances d’origine : 304625
Symptômes
Lorsque vous chargez un document XML distant à partir d’un serveur Web à l’aide de XMLHTTP ou XMLDocument ::Load, vous pouvez recevoir le message d’erreur suivant :
HRESULT C00CE56E
Le système ne prend pas en charge l’encodage spécifié.
Cette erreur est la plus fréquente lorsque vous utilisez une infrastructure d’application de niveau intermédiaire Java.
Cause
À compter de la version 2.6, MSXML transmet tous les documents XML via Mlang.dll pour vérifier leur encodage. Si Mlang.dll rencontre une chaîne d’encodage non standard, elle retourne une erreur.
'ISO8859_1' est la représentation canonique de la chaîne d’encodage de caractères Latin-1 dans les bibliothèques de classes et de langage Java. Toutefois, la norme définie par l’Autorité des numéros attribués par Internet est « ISO-8859-1 », qui n’est pas un alias accepté.
Résolution
Pour résoudre ce problème, effectuez lʼune des opérations suivantes :
Remplacez la chaîne d’encodage de caractères dans l’environnement serveur Java approprié de « ISO8859_1 » par « ISO-8859-1 ».
Utilisez
IXMLDOMDocument::get_responseBody
pour récupérer les données en tant que mémoire tampon brute d’octets. Si vous développez l’application dans Microsoft Visual C++, vous pouvez définir un handle HGLOBAL pour vos données et l’utiliserCreateStreamOnHGlobal
pour faciliter le traitement des données.
References
Pour plus d’informations, consultez Jeux de caractères.