|
|
Les caractères du document de XML peuvent être codés dans différents formats. Par défaut XML emploie le jeu de caractères d'Unicode (UTF-8 ou UTF-16), mais d'autres codages peuvent être employés s'ils sont déclarés dans la déclaration de XML au début du document.
|
En raison du problème de codage vous pouvez obtenir différentes erreurs, quand vous essayez de charger un document de XML dans l'Internet Explorer :
|
« Commuter du codage courant au codage indiqué non soutenu. »
|
Un tel type d'erreur produisent d'en raison de la contradiction entre le codage de caractère indiqué dans la déclaration de XML et le codage réel de caractère employé pour arranger le document de XML. Dans XML tous les caractères viennent du jeu de caractères universel (UCS), qui associe toujours un point de code numérique à chaque caractère. Beaucoup d'algorithmes existent pour les points de code convertissants dans un ordre des bytes. Un codage spécifique de caractère doit être employé pour arranger un document de XML. Par exemple, si vous dactylographiez un document de XML dans le bloc-notes et économiser lui, vous pouvez choisir d'un de plusieurs des codages soutenus de caractère comprenant ISO-8859-1, UTF-8, ou UTF-16. Selon les spécifications de XML 1.0, tous les processeurs sont exigés automatiquement pour détecter et soutenir les codages UTF-8 et UTF-16. Vous n'avez pas besoin d'une déclaration de XML si vous employez un de ces deux codages en arrangeant vos documents,
|
<?xml version="1.0" encoding="UTF-8"?> <!-- optional -->
|
Si vous employez le codage différent autre qu'UTF-8/UTF-16, alors vous devez employer une déclaration de XML pour indiquer le codage réel utilisé. Sans savoir ce que le codage a été employé réellement comment oser le processeur a-t-il lu l'information de codage ?
Il est facile pour des processeurs d'auto-detect entre UTF-8/UTF-16 avec ou sans une déclaration de XML en recherchant une marque d'ordre de byte (BOM) exigée dans les documents UTF-16. Pour tous autres codages, vous savez que les cinq premiers caractères doivent être « < ? xml ». Puisqu'un processeur donné soutiendra seulement un ensemble fini de codages, on peut employer un algorithme de force brutale qui regarde simplement les bytes premiers pour déterminer la famille du codage de caractère utilisé (il y a cinq familles de codage possibles comprenant UTF-16 grand endian, UTF-16 peu endian, UCS-4 ou tous autres codage, EBCDIC, et tout de 32 bits autrement). Une fois que le processeur détecte la famille de codage, elle peut lire le reste de la déclaration de XML (puisque seulement un ensemble restreint de caractères peut être employé dans la déclaration de XML), alors il peut commuter à employer le codage indiqué de caractère chez la famille détectée. Si, en ce moment, la déclaration de XML indique le processeur commuter à un codage d'une famille complètement différente, cette erreur se produit. Ainsi quand vous sauvez un document en utilisant un codage spécifique, puis indiquer un codage différent dans la déclaration de XML, vous obtiendra cette erreur parce que les codages doivent convenir.
|
Un caractère inadmissible a été trouvé dans le contenu des textes.
|
Ce message d'erreur produisent de quand un caractère dans le document de XML pas match l'attribut de codage et aucun n'importe quel attribut de codage n'a été indiqué. Normalement vous recevrez ce message d'erreur si votre document de XML contient les caractères « étrangers » et le dossier était sauvé avec un rédacteur de codage de simple-byte comme le bloc-notes.
|
Bloc-notes de Windows 2000 sans codage
|
Les dossiers de bloc-notes de Windows 2000 peuvent sauver comme format d'Unicode.
|
Économiser le dossier de XML ci-dessous comme Unicode (pays que le document ne contient aucun attribut de codage) :
|
<?xml version="1.0"?>
<Country>
<from>India</from>
<to>China</to>
</Country>
|
Le dossier ci-dessus ne produira pas d'une erreur dans IE 5+, Firefox, ou opéra, mais il produira d'une erreur dans Netscape 6.2.
|
Bloc-notes de Windows 2000 avec le codage
|
Les dossiers de bloc-notes de Windows 2000 sauvés comme Unicode emploient le format « UTF-16 » de codage.
Si vous ajoutez un attribut de codage aux dossiers de XML sauvés comme Unicode, les fenêtres codant des valeurs produiront d'une erreur.
|
Le codage suivant ne produit pas du message d'erreur :
|
<?xml version="1.0" encoding="windows-1252" ?>
<!-- Edited with XML Spy v2006 (http://www.altova.com)
-->
-<Country>
<to>China</to>
<from>India</from>
<heading>remind language</heading>
<body>Norwegian: æøå. French: êèé</body>
</Country>
|
Le codage suivant ne produit pas du message d'erreur :
|
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!-- Edited with XML Spy v2006 (http://www.altova.com)
-->
-<Country>
<to>China</to>
<from>India</from>
<heading>remind language</heading>
<body>Norwegian: æøå. French: êèé</body>
</Country>
|
Le codage suivant ne produit pas du message d'erreur :
|
<?xml version="1.0" encoding="UTF-8" ?>
<!-- Edited with XML Spy v2006 (http://www.altova.com)
-->
-<Country>
<to>China</to>
<from>India</from>
<heading>remind language</heading>
<body>Norwegian: æøå. French: êèé</body>
</Country>
|
> le codage suivant ne produira pas d'une erreur dans IE 5+, Firefox, ou opéra, mais dans Netscape 6.2 il produira d'une erreur.
|
<?xml version="1.0" encoding="UTF-16" ?>
<!-- Edited with XML Spy v2006 (http://www.altova.com)
-->
-<Country>
<to>China</to>
<from>India</from>
<heading>remind language</heading>
<body>Norwegian: æøå. French: êèé</body>
</Country>
|
Keywords:
xml document, xml parser, xml schema, xml declaration,
xml-encoding,
xsl encoding,
xml encoding,
xml encode,
xml unicode encoding,
xslt encoding,
xml charset,
xml base64,
xml encoding declaration,
xml encoding utf 8,
xml encoding iso 8859 1,
java xml encoding,
xml iso 8859 1,
xml character encoding,
xml iso 8859,
xml encoding iso 8859,
xml encoding utf,
xml encoding iso,
xml encoded,
xml version 1.0 encoding utf 8,
xml version 1.0 encoding,
xml version 1.0 encoding iso 8859 1,
javax xml rpc encoding,
xml version 1.0 encoding utf 16.
|