Maison > Article > développement back-end > Explication détaillée de l'encodage en XML
Il y a le même jour, je discutais avec mes collègues de la relation entre l'attribut d'encodage en xml et le format de fichier, et j'ai finalement bien compris.
Ce que j'avais compris auparavant, c'est que la définition de l'encodage en XML doit correspondre au format de fichier. Autrement dit, s'il existe une telle introduction XML (J'ai découvert plus tard que FF FE n'est pas le BOM de l'utf-8... ce qui veut dire que mon incompréhension a duré longtemps...)
Parlons brièvement des différentes étapes de la discussion.
Au début de la discussion, je lui ai dit avec certitude que la valeur d'encodage doit correspondre au format de fichier (c'est-à-dire BOM, BOM est l'abréviation de byte order mark), sinon lors de l'analyse XML, des erreurs peuvent survenir (par exemple, le document contient un certain caractère UNICODE, et le format spécifié par l'encodage ou la nomenclature ne correspond pas, une erreur se produira (c'est ce que je voulais dire à l'époque), puis il m'a dit que cela ne semble pas être le cas. Le fichier XML que j'ai créé avec DELPHI n'a pas de nomenclature dans le XML. Il y a du contenu chinois et le codage spécifié est UTF-8. Il peut être ouvert normalement avec IE.
Quand il a découvert que le fichier XML qu'il avait créé n'avait pas de nomenclature, une chose intéressante était que lors de l'utilisation de UE pour ouvrir de tels fichiers contenant des caractères UNICODE, UE ajouterait automatiquement FF FE devant le fichier afin que le fichier puisse s'affichera normalement, donc si vous parcourez un fichier qui à l'origine n'a pas de nomenclature en hexadécimal sous UE, vous verrez une nomenclature supplémentaire. Cette fonction peut être supprimée dans les OPTIONS de UE. c'est vous-même.
Ensuite, je suis devenu un peu confus, comment cela a-t-il pu arriver ? Ensuite, j'ai réfléchi et réfléchi, et tout à coup, il a envoyé un message avec le contenu suivant :
W3C en a défini trois. Règles XML pour la façon dont l'analyseur lit correctement l'encodage des fichiers XML :
1. Si le document a une BOM (Byte Order Mark, d'une manière générale, s'il est enregistré au format unicode, il contient la BOM, mais pas ANSI ) , l'encodage du fichier est défini
2. S'il n'y a pas de nomenclature, vérifiez l'attribut encoding de la déclaration XML
3. S'il n'y a aucun des deux ci-dessus, on suppose que le document XML est encodé en UTF-8
Avec ces trois règles, cette règle sera beaucoup plus claire.
Tout d'abord, l'analyseur XML analyse le fichier en fonction de la nomenclature du fichier ; si la nomenclature n'est pas trouvée, l'encodage spécifié par l'attribut encoding en XML est utilisé ; utf-8 est utilisé par défaut. Ensuite, il peut être lancé S'il y a à la fois BOM et ENCODING, celui spécifié par BOM prévaudra.
Ah ! J’ai soudain senti à quel point ce serait génial d’avoir des documents standards ! Même si c'est si naturel.
À ce stade, je comprends enfin la relation entre l'encodage et le format de fichier en XML. Bien que ce disque ne contienne que quelques centaines de mots, lorsque nous en discutions, le temps total passé était de près de 2 heures.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!