Affichage correct des accents

Cela fait quelque temps que j'ai cette épine dans le pied et je me suis enfin décidé à  m'en occuper :)
Cela concerne l'affichage correct des accents dans la fenêtre de bug et dans le texte modifié par programmation (comme le titre d'une fenêtre par exemple).
Je place d'abord le contexte : j'utilise xCode mais mon éditeur est emacs (non je ne suis pas maso mais franchement une fois la bête un peu maà®trisée on a beaucoup de mal à  revenir à  un autre éditeur).

Sur emacs, j'ai fait le choix de l'encodage de texte utf-8 pour des raisons techniques car il m'arrive de développer des bouts de code pour d'autres machines (genre PC linux, Windows ou bien encore gros système) et ce format est bien reconnu chez tout ce petit monde :)
Pour revenir à  xCode, j'ai donc défini mes fichiers comme utf-8 ce qui me permet de les lire dans ce dernier correctement par contre, lorsque dans une de mes applications je fais :

<br />NSLog (@&quot;Affichage des éléments de ma liste&quot;);<br />


A l'exécution je me retrouve avec un affichage du type:
[tt]Affichage des %à l%à ments de ma liste[/tt]

en fait mon 'é' est remplacé par 2 caractères qui ressemblent plus à  une racine carrée et je-sais-plus-quoi.
Et cela me fait la même chose dans les barres de titre à  l'affectant par la méthode setTitle.

Je pense qu'il faut préciser quelque part que le programme doit utiliser utf-8 mais je n'ai pas trouvé l'option. En plus, je suis certain que c'est le truc tout bête et que ma problématique va sembler stupide.

Merci par avance :D

Réponses

  • muqaddarmuqaddar Administrateur
    01:37 modifié #2
    Bein, j'ai pas saisi, tu as précisé UTF-8 dans les préférences "text editing" de xCode ?
  • olofolof Membre
    01:37 modifié #3
    Je me permets de relancer ce sujet...

    Dans xCode, menu 'Format', 'File Encoding', j'ai 'Unicode (UTF-8)'. Quand j'affecte une chaà®ne à  un NSTextField, je perds les accents :

    [monChamp setStringValue:[NSString stringWithFormat:]]

    il s'affiche des caractères étranges.

    J'ai essayé avec localizedStringWithFormat, c'est la même chose.

    Y'a un paramètre qui m'échappe ???


    Merc !
  • novembre 2005 modifié #4
    Pas de caractères spéciaux dans le code (c'est mal d'avoir des strings directement destinées à  être affichées dans le code). Si tu veux des accents, tu dois passer par NSLocalizedString et créer un fichier Localizable.strings dans lequel tu peux mettre tous les caractères que tu veux.

    http://www.objective-cocoa.org/forum/index.php?topic=846.msg9946#msg9946
  • olofolof Membre
    01:37 modifié #5
    Tout à  fait d'accord avec toi sur le fait que c'est mal d'avoir des strings dans le code. Mais comme je débute en Cocoa, je pensais me mettre à  la localisation plus tard.

    Ben je m'y mettrai plus tôt que prévu  ;)


    Merci
  • LeChatNoirLeChatNoir Membre, Modérateur
    01:37 modifié #6
    Salut !
    Je remonte ce vieux sujet car j'ai des problèmes avec les accents ET avec les localizedStrings.

    En fait, mes chaà®nes de caractères sont bien dans des fichiers .strings. Dans le French, je met des accents.

    Et il me les affiche pas !
    Et en plus, il me met une erreur lors du parsing du fichier... En me disant que c'est pas de l'UTF 8 ou un truc du style...

    Quel est le pb ?
    J'ai créé les fichiers dans XCode en choisissant "Empty File".

    Merci !
  • 01:37 modifié #7
    Ce n'est pas de l'UTF8 à  mon avis. Les empty files sont en Mac OS Roman.
  • AliGatorAliGator Membre, Modérateur
    01:37 modifié #8
    Soit tu restes dans Xcode mais tu lui précise que c'est de l'UTF8
    Soit tu utilises un autre éditeur de texte qui sait enregistrer en texte brut format UTF8.

    Dans Xcode si tu affiches l'inspecteur après avoir cliqué sur ton fichier localized.strings français, tu peux changer l'encodage, qui par défaut dans Xcode (et je me demande encore pourquoi ils ont choisi ça mais c'est comme ça) est du MacRoman et non de l'UTF-8 (le fichiers de code sont en MacRoman, les fichiers strings doivent être en UTF8)
  • LeChatNoirLeChatNoir Membre, Modérateur
    01:37 modifié #9
    ah ben d'accord, je savais pas.

    Je regarde ça tonight.

    Merci bcp !
  • 01:37 modifié #10
    dans 1140429080:

    Soit tu utilises un autre éditeur de texte qui sait enregistrer en texte brut format UTF8.


    Pas recommandé ça, XCode a tendance à  perdre les pédales quand on modifie les encodages dans un programme externe.
Connectez-vous ou Inscrivez-vous pour répondre.