Encodage de caractères et NSString.

13:53 modifié dans API AppKit #1
Voilà mon problème, j'affectionne de configurer XCode pour qu'il encode mes fichiers sources en UTF-8. Problème lorsque je lui passe le code suivant :
<br />[[NSCell alloc] initTextCell: @&quot;Stabilit&eacute; :&quot;]<br />


Lors de l'affichage de la cellule il n'affiche pas le é correctement. Si mon code source est encodé en ISO-Latin 1, le résultat est le même mais si le code source est encodé en Mac OS Roman tout marche bien.
En fait tout se passe comme si le @";" était supposé être toujours encodé en Mac OS Roman :-(, alors qu'en interne un NSString utilise l'UTF-8 il me semble.

Qu'en pensez-vous ?

Réponses

  • BruBru Membre
    13:53 modifié #2
    Si tu changes les encodages de tes sources, alors que tu avais déjà fait la compil, je pense qu'il faut faire un clean all targets et ensuite une nouvelle compilation.

    Chez moi, tous mes sources sont en UTF-8, et je n'ai pas de problème avec les caractères diacritiques.

    .
  • 13:53 modifié #3
    Je viens de faire une série de clean all targets mais ça n'a rien changé :-(.

    Et efectivement il me semble qu'à une époque en UTF-8 (sur d'autres projets) ça passait trés bien, je ne vois pas ce que j'ai pu changer depuis.
  • mpergandmpergand Membre
    juin 2004 modifié #4
    Pour les NSTextField/NSTextView† il faut du UTF-16, j'ai déjà eu ce problème !

    En fait, si tu utilises les fichiers .strings pour la localisation, tu n'auras plus de problème.
  • 13:53 modifié #5
    Si je passe mon fichier entier en UTF-16, il ne compile plus  >:(

    Ben vu que c'est une application qui a trait à un jeu qui n'existe qu'en français et qui nécessite de savoir parler français pour y jouer je ne pensais pas faire en sorte de la localiser.

    S'il faut que je passe par un fichier .strings juste pour ça... c'est un peu lourd.
  • mpergandmpergand Membre
    13:53 modifié #6
    Essaye d'ajouter un attribut d'encodage(UTF-8) à ta chaine (NSAttributedString), par défaut ça doit d'être de l'UTF-16.
Connectez-vous ou Inscrivez-vous pour répondre.