wxDev.fr, le portail francophone consacré à wxWidgets ! ( The french portal for wxWidgets )  
Esp. membre
Recheche rapide



Recherche avancée
Statistiques
Membres inscrits :2359

Membres en ligne : 0
Invités en ligne : 1

Valid XHTML 1.0 Transitional

Valid CSS2

Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Développement C/C++
» Normalisation UTF-8
Conversation : Normalisation UTF-8
09-04-2019 16:36:33  Normalisation UTF-8 #1
paul_c_weiss (Membre)
Inscrit le : 07-12-2012
Messages: 25
Snippets: 0
Tutoriels: 0
Hors ligne
Bonjour!
Mon problème se précise. Donc voilà:

Je suis en train de construire une application qui va ajouter des lignes dans un fichier au format xlsx (tableur Excel).
Excel maintient une liste des chaînes "uniques" (SharedStrings) au format UTF-8. Pour ajouter des cellules contenant du texte il me faut donc:

- Créer la liste des "textes uniques" à partir du fichier xlsx,
- Rechercher mon texte dans cette liste, et si
   - il est trouvé, prendre le numéro d'ordre correspondant
   - il n'est pas trouvé, l'ajouter à la liste, avec un nouveau numéro d'ordre.

Jusque là, pas de souci, mais...

Il se trouve que les textes au format UTF-8 peuvent être codés de différentes manières.
par exemple, le caractère 'é' peut apparaître comme 0x65 0xCC 0x81 ou alors 0xC3 0xA9...
wxString n'a pas de problème avec ça, et traite très bien ces deux "dialectes"...

Mais les chaînes que j'ai dans mon tableur ont diverses provenances (elles viennent du net..), et donc il n'est pas possible de dire a priori comment elles sont codées.

Ainsi, parfois ma comparaison échoue, quand même il y a dans le tableur une chaîne dont l'aspect affiché correspond exactement à la nouvelle chaîne.

En soi, la situation n'est pas dramatique: je peux probablement vivre avec quelques chaînes à double dans mon fichier... Toutefois cela ne me semble pas très "propre".

Il serait donc bienvenu de "normaliser" les chaînes UTF-8, pour qu'elles aient une représentation unique. Il me semble que Windows fourni dans ce but une fonction "NormaliseString" (ou qqch comme ça..). Je n'ai rien trouvé d'équivalent sous wxWidgets.

Donc:
- Avez-vous aussi ce problème?
- Connaissez-vous un utilitaire adapté?
- Sinon, peut-on trouver quelque part des tables de correspondance entre "dialectes".

Merci d'avance

Paul
09-04-2019 21:11:27  Re: Normalisation UTF-8 #2
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1382
Snippets: 25
Tutoriels: 6
Site web
Hors ligne
Salut.

Je suppose que tu as déjà trouvé ce lien, mais au cas où ça ne serait pas le cas, tu peut jeter un coup d'oeil à utf8proc dont les sources sont disponibles suf github (https:/github.com/JuliaStrings/utf8proc).

Il y a l'air d'avoir une sorte de "table de correspondance" (fichier utf8proc_data.c), mais je n'ai pas investigué plus en profondeur pour savoir comment elle était traitée.

Est-ce que tu as essayé de passer par une conversion en utf-16 puis retour en utf-8 pour voir ce que ça donne ?

Tiens nous au courant, ça peut servir.

@+
Xav'

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà...
10-04-2019 09:28:24  Re: Normalisation UTF-8 #3
paul_c_weiss (Membre)
Inscrit le : 07-12-2012
Messages: 25
Snippets: 0
Tutoriels: 0
Hors ligne
Merci!
Je vais essayer de décrypter ça..
Mais ça me prendra un certain temps, parce que ça me semble légèrement trapu!

Je vous tiens au courant.

Paul
Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Développement C/C++
» Normalisation UTF-8