Une application sur laquelle je travaille stocke des données dans un fichier INI. L'application crée le fichier INI qui à son tour sera lu par une autre application que nous avons également créée. Le fichier INI peut également être modifié manuellement. Il est probable que tôt ou tard, le fichier INI contiendra des langues différentes. Nous avons donc veillé à ce que toutes les données utilisées dans ce fichier soient au format Unicode. Après avoir créé le fichier INI initialement Nous avons examiné le fichier dans le bloc-notes et remarqué que l'espacement des lettres était vissé. Après un peu de recherche, nous avons découvert que la marque Unicode Byte Order Mark (BOM) FF FE
& commençait à écrire cela au début du fichier et tout semblait bien - Le fichier a été créé correctement et pourrait être modifié manuellement dans le bloc-notes.Problèmes Unicode/Non-Unicode/UTF-8
Maintenant le problème - Nous sommes allés à la recherche d'un analyseur de fichiers INI au lieu de créer le notre. Propriété Boost L'arbre semblait idéal mais il semble que la BOM ne soit pas filtrée par le wifstream sous-jacent et que finalement l'arbre des propriétés lève une exception à cause de cela.
Ensuite, nous avons essayé SimpleINI link text mais simpleINI (CSimpleIniW) ne semble pas fonctionner à moins que le marqueur UTF-8 soit au début du fichier. Jusqu'à présent, 2 processeurs de fichiers INI apparemment bien développés ne fonctionneront pas avec notre simple fichier INI, nous avons donc commencé à penser que nous prenions la mauvaise approche. En dehors de l'évidence "Devrait avoir utilisé XML" Quels conseils réels pouvez-vous offrir sur ce problème?
MISE À JOUR:
Je travaille maintenant ce. La nomenclature n'était pas le problème. C'était parce que les données n'étaient pas stockées en UTF8. Merci ....
Nous n'avons aucun contrôle sur les utilisateurs finaux de l'éditeur de texte qui utilisent le fichier INI. – Canacourse
Ensuite, utilisez un script qui les supprime, si possible. Indiquer à l'utilisateur final quel éditeur de texte il doit utiliser. – Dor