codage par défaut pour XML UTF-8 ou UTF-16?
OpenTag FAQ états:
Si aucune déclaration de codage est présent
dans le document XML (et pas externe
déclaration de codage mécanisme, tel qu'
l'en-tête HTTP est disponible), le
supposé encodage d'un document XML
dépend de la présence de l'
L'Ordre des octets (BOM).La NOMENCLATURE est un Unicode marqueur spécial
placé au début du fichier
indiquer son codage. La NOMENCLATURE est
en option pour l'UTF-8.First bytes Encoding assumed ----------------------------------------- EF BB BF UTF-8 FE FF UTF-16 (big-endian) FF FE UTF-16 (little-endian) 00 00 FE FF UTF-32 (big-endian) FF FE 00 00 UTF-32 (little-endian) None of the above UTF-8
Est-il un simplifiés explication de l'alinéa ci-dessus?
L'explication que vous cherchez se trouve dans le tableau en dessous de ce paragraphe...
bien sûr, j'ai lu que la partie aussi! mais je ne pouvais pas copier coller des tables dans la question pourrais-je?
Je fais un copier collé de la table dans votre question. :o)
Quel est exactement votre question?
Cette question, bien sûr, n'est pas une transformation XSLT question.
bien sûr, j'ai lu que la partie aussi! mais je ne pouvais pas copier coller des tables dans la question pourrais-je?
Je fais un copier collé de la table dans votre question. :o)
Quel est exactement votre question?
Cette question, bien sûr, n'est pas une transformation XSLT question.
OriginalL'auteur Pacerier | 2011-06-10
Vous devez vous connecter pour publier un commentaire.
Soit vous devez utiliser une ligne comme
pour spécifier l'encodage est utilisé. Si l'encodage n'est pas spécifié, un Marque d'ordre des octets (BOM) peuvent être présents. Si un MOB, soit UTF-16 ou UTF-32 est présent, que l'encodage est utilisé. Sinon, UTF-8 est un encodage. (La NOMENCLATURE pour l'UTF-8 est facultatif)
Modifier
La NOMENCLATURE est un personnage invisible. Mais il n'est pas besoin de le voir. Applications prendre soin d'elle automatiquement. Lorsque vous utilisez le bloc-notes de windows, vous pouvez sélectionner le type d'encodage lorsque vous enregistrez le fichier. Le bloc-notes pour insérer automatiquement la NOMENCLATURE au début du fichier. Plus tard lorsque vous rouvrez le fichier, le bloc-notes reconnaître la NOMENCLATURE et utiliser le bon encodage pour lire le fichier. Il n'est pas nécessaire pour vous de modifier la NOMENCLATURE, si vous voulez le faire, les personnages peuvent obtenir un sens différent, de sorte que le texte ne sera pas la même.
Je vais essayer d'expliquer avec un exemple. Envisager un fichier texte avec les caractères "test". Par défaut le bloc-notes va utiliser le codage ANSI, le fichier texte ressemblera à ceci lorsque vous l'affichez dans le mode hex:
(comme vous le voyez, je suis en utilisant hexdump de gnuwin32, mais vous pouvez également utiliser un éditeur hexadécimal comme Frhed voir.
Il n'y a pas de MOB en face de ce fichier. Il ne serait pas possible, parce que le personnage qui est utilisé pour le BOM n'existe pas dans le codage ANSI. (Car il n'existe pas de NOMENCLATURE, les éditeurs qui ne prennent pas en charge le codage ANSI, permettrait de traiter ce fichier en UTF-8).
lorsque j'ai maintenant enregistrer le fichier comme de l'utf-8, vous verrez un supplément de 3 octets (BOM) en face de "test":
(si vous ouvrez ce fichier avec un éditeur de texte qui ne supporte pas l'utf-8, vous auriez fait voir ces personnages "")
Le bloc-notes peut également enregistrer le fichier au format unicode, ce qui signifie UTF-16 little-endian (UTF-16LE):
Et voici la version enregistrée comme unicode (big endian) (UTF-16BE):
Considérons maintenant un fichier texte avec les 4 caractères chinois "琀攀猀琀". Lorsque j'enregistre que comme unicode (big endian), le résultat ressemble à ceci:
Comme vous le voyez, le mot "test" en UTF-16LE sont stockées de la même manière que le mot "琀攀猀琀" en UTF-16BE. Mais parce que si la NOMENCLATURE est stockée différentes, vous pouvez voir si le fichier contient "test" ou "琀攀猀琀". Sans BOM vous devez deviner.
Non, il y a un invisible caractère supplémentaire à l'avant de la première
<
. Ce personnage est choisi de manière à ce qu'il ne peut jamais être mal interprété. Donc, si vous utilisez un éditeur hexadécimal pour regarder le fichier, vous allez voir les codes, et vous pouvez déterminer de quel encodage est utilisé dans le reste du fichier.Une NOMENCLATURE est pas obligatoire -- de sorte que votre précédent commentaire n'est pas tout à fait vrai.
mais comment peut-on modifier ce que cela
invisible extra character
est? J'utilise souvent le bloc-notes.. donc veut-il dire qu'il n'existe pas de NOMENCLATURE?J'ai modifié ma réponse expliquant la NOMENCLATURE un peu mieux. Mais s'il vous plaît laissez-moi savoir si c'est toujours pas clair.
OriginalL'auteur wimh