Petit accident d'unicode, j'aimerais comprendre

Lio70

Membre expert
Club iGen
16 Janvier 2004
2 396
1 282
Bonjour,

Je viens de reprendre le developpement d'un projet OSX que j'avais laisse en suspens depuis trois semaines (Mountain Lion, Xcode 4). J'utilise a plusieurs endroits des number formatters, ici par exemple pour afficher correctement des pourcentages sur un popup button. Afin de verifier le cours des operations dans une partie un peu complexe de mon app, j'utilise des NSLog.

En particulier un NSLog doit, pour chaque conversion, m'afficher "Conversion: et la valeur correcte avec le signe pourcent" ensuite le contenu d'un array rempli avec toutes les valeurs converties. Surprise, en compilant, le popup affiche maintenant un espace entre les chiffres et le signe pourcent (normalement il n'y a pas d'espace) et la console m'envoie ceci :

2012-10-31 12:10:12.599 app[6100:303] Conversion: 23*%
2012-10-31 12:10:12.600 app[6100:303] Conversion: 21*%
2012-10-31 12:10:12.601 app[6100:303] Conversion: 19,6*%
2012-10-31 12:10:12.603 app[6100:303] (
"23\U00a0%",
"21\U00a0%",
"19,6\U00a0%",
)

Manifestement, l'espace anormalement ajoute est fait avec le caractere unicode correspondant au "non-breaking space".

Alors que s'est-il passe depuis 3 semaines? Je travaille toujours en anglais et, par besoin de me rappeler de certains mots francais des menus et fonctions de Mountain Lion, j'ai remis le francais comme langue du systeme et j'ai travaille 2 ou 3 jours comme cela. Pendant ce temps, j'ai ouvert juste une fois mon projet Xcode pour le recompiler et me rappeler ou j'en etais, sans rien toucher au projet lui-meme.

Aujourd'hui mon systeme est de nouveau en anglais et je constate le probeme.
Je viens de tester mon projet avec lmettant es parametres regionaux d'OSX en Arabe (Emirats Arabes) et la, pas de probleme d'espace indesire. En remettant ensuite les parametres normaux, tout vient de rentrer dans l'ordre donc le probleme n'existe plus. Mais je voudrais comprendre ce qui s'est passe. Au cas ou cela se reproduirait, et si ca peut foutre en l'air un projet.

Merci

(Note au passage: j'utilise souvent l'arabe du golfe pour tester, parce qu'il utilise des caracteres unicode tous differents du francais, donc me permet de verifier radicalement si tous mes formatters de pourcentages, devises, chiffres, dates etc... sont faits correctement.)
 
Dernière édition:
le bon tatouille pourrait bien te répondre :p (mais mon temps est toujours limité comme a chaque fois, le probleme vient de ICU et du corefoundation conflit d'interet sur la locale j'ai vu ca quand j'ai commencé a utiliser ICU et boost en pure c++) mais il a été décidé que j'étais infréquentable pire que Dieudonné et Lepen réunies, juste pour avoir rembarré un jackie tuning qui postait des spams (certains appelent cela article, en ce qui concerne le bon tatouille des torchons ) en premiere page de macgé :rolleyes: (et le bon tatouille l'avenir lui a donné raison mdr)

et je vous mrd les creuvards :o

comme ils me banissent (les chefs de le haut, il y a des consignes tu ne seras plus admin si tu aimes le bon tatouille enfin ce genre de pitrerie) pour double pseudo a chaque fois... j'en connais une pelletée qui ont fait pire... mais bon il faut bien un horrible du village ca fait bander les paralysés du fion femelle ou male :o

et si t'es un nioub qui passe par la: ta gueule et on ne parle pas la bouche pleine :o

(ps j'utilise aussi l'Arabe, l'Hebreu (moderne), le chinois simplifié et le coréen , ayant quelques bases dans ces languages ce qui me permet de vérifier et/ou de soulever d'éventuel loup entre differente API comme tu l'as fait et je pense que toi aussi tu as quelques notions en arabe, ce que le nioub CEO ou pas ne peut comprendre, oui nous ne sommes pas arrogant juste intellectuellement superieur ce qui nous permet de jouer avec un recule que vous les cul-terreux de base n'avez pas mdr)
 
Dernière édition: