Encodage de caractères, à  quoi corresponde ces nombres ?

yoannyoann Membre
Salut tout le monde,

Le sujet du topic n'est pas très évocateur mais pourtant, la chose est simple. J'ai dans un web service ce tableau qui m'est retourné :

<br />&nbsp; &nbsp; &nbsp; &nbsp; encodings =&nbsp; &nbsp; &nbsp; &nbsp;  (<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 4,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 29,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 25,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 2,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 36,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 7,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 6,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 5,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 37,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 3,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 38,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 21,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 35<br />&nbsp; &nbsp; &nbsp; &nbsp; );<br />


J'imagine que cette série n'est pas totalement aléatoire, je sais via un autre logiciel qu'est-ce qui correspond à  quoi (4=Arabe, 29=Roman europe centrale, 25=chinois simplifié, etc.)

J'aimerais juste savoir à  quel standard ça se réfère si ça parle à  quelqu'un ^^

Réponses

  • AliGatorAliGator Membre, Modérateur
    19:11 modifié #2
    Tu es sûr de ta première conclusion quant aux correspondances ? Je veux dire, ça colle effectivement avec ce que tu remarques ?
    Car pour moi quand je vois "4" comme valeur pour un encoding (surtout s'il est mis en premier et que ça évoque donc une valeur sans doute souvent utilisée), je pense plutôt à  la valeur de NSUTF8StringEncoding (que je commence à  connaà®tre par coeur car j'ai eu à  déboguer un programme où je voulais regarder la valeur textuelle d'un NSData, et pour appeler "[tt]po [[[NSString alloc] initWithData:mydata encoding:4] autorelease][/tt]" on est obligé de mettre le 4 et pas NSUTF8StringEncoding dans ce contexte vu que gdb ne connait pas la constante en question ;))

    Maintenant, les valeurs dans NSString.h pour ces constantes n'ont pas l'air d'aller si loin (quoique ça dépend peut-être de la version de OSX) donc si ça se trouve ça n'a rien à  voir...

    Mais es-tu sûr que ça correspond à  un standard ? C'est peut-être propre au WebService que tu utilises ?
    Le tableau "encodings" que tu reçois, c'est en réponse à  une requête au WS genre "donne moi la liste de tous les encodings que tu utilises" ? Ou c'est une réponse à  genre "retourne moi l'encodage de chaque résultat, un encoding par résultat" (à  la "SELECT encoding FROM results" quoi) ?
    Car après si ça se trouve c'est juste une convention du WebService en question qui dit que 4 c'est arabe etc... mais qui n'a rien de standard ?
  • yoannyoann Membre
    mars 2010 modifié #3
    Le webservice en question est celui d'Apple pour gérer les OS X Server, voici mon fichier strings refait depuis leur application (simplement en comparant le résultat sur l'appli et le WS)

    "0" = "Roman";
    "4" = "Arabic";
    "29" = "Central European Roman";
    "25" = "Chinese Simplified";
    "2" = "Chinese Traditional";
    "36" = "Croatian";
    "7" = "Cyrillic";
    "6" = "Greek";
    "5" = "Hebrew";
    "37" = "Icelandic";
    "1" = "Japanese";
    "3" = "Korean";
    "38" = "Romanian";
    "21" = "Thai";
    "35" = "Turkish";

    Pour être précis ça sert a désigné la table d'encodage de carractère pour les clients pré Mac OS X en AFP (la liste en question est ce que le serveur supporte et j'ai un autre endroit pour placer celui que je choisi)

    Je ne trouve aucune logique dans ces ID du coup je me demande si ça correspond à  une norme ou simplement a une dose de LSD...
  • AliGatorAliGator Membre, Modérateur
    mars 2010 modifié #4
    Ah bah fallait le dire que c'est un WebService Apple ;) Et que c'était pour gérer du Pré-OSX ;)
    Du coup réflexe, aller fouiller dans la doc Apple ce qui se rapporte aux TextEncodings dans les APIs C

    Et Tadaaaam !
  • yoannyoann Membre
    19:11 modifié #5
    Merci 
  • AliGatorAliGator Membre, Modérateur
    19:11 modifié #6
    D'ailleurs avec ces APIs tu devrais pouvoir avoir le nom du TE à  partir de cette valeur entière val, avec un appel genre :

    TextEncoding te = CreateTextEncoding( (TextEncodingBase)val , kTextEncodingDefaultVariant , kTextEncodingDefaultFormat);<br /><br />Str255 result;<br />OSStatus ret = TECGetTextEncodingInternetName(te, &amp;result);<br />// ou<br />TextPtr encName;<br />GetTextEncodingName( te , kTextEncodingBaseName , .... , &amp;oEncodingName);
    
  • yoannyoann Membre
    19:11 modifié #7
    Je doute qu'une API carbon de ce type soit dispo sur l'iPhone OS ^^

    Mais merci pour ces info :-)
  • AliGatorAliGator Membre, Modérateur
    19:11 modifié #8
    Ah oui forcément je n'avais pas tilté que c'était pour iPhone, c'est sûr ça m'étonnerait aussi que ce soit dispo :P
  • yoannyoann Membre
    19:11 modifié #9
    Bah je ne l'avais pas dit que c'était sur iPhone aussi, la question est valable pour Mac aussi ^^
  • 19:11 modifié #10
    Ali, je trouve que tu travailles trop sur iPhone  :D
  • yoannyoann Membre
    19:11 modifié #11
    dans 1269474627:

    Ali, je trouve que tu travailles trop sur iPhone  :D



    Oh le gros troll velu !
Connectez-vous ou Inscrivez-vous pour répondre.