OVH Cloud OVH Cloud

code unicode d'un caractère

9 réponses
Avatar
ami
Inutile mais je ne trouve pas de réponse dans ggogle et news :
Comment afficher le code 'unicode' d'un simple caractère comme 'a' (ou
d'une chaine complète ) ?


>>> char = 'a'
>>> print LaFonctionQuiAfficheLeCodeUniCodeDuChar(char) <--- laà, je
ne trouve pas de solution !

Merci

9 réponses

Avatar
Do Re Mi chel La Si Do
Bonsoir !

Les exemples suivants suffiront-ils ?


uchar=u'a'
uo=ord(uchar); print uo
uc=unichr(uo) ; print uc

char='a'
uchar=unicode(char)
uo=ord(char); print uo
uc=unichr(uo) ; print uc



@-salutations

Michel Claveau
Avatar
Do Re Mi chel La Si Do
Re

J'ai oublié de préciser que cela n'est valable que pour les caractères
purement ASCII (<128).
Pour les autres, cela dépend de la locale, de l'encodage du script, de
l'éditeur, des caractères utilisés, du GUI choisi.

Avec WScite, ça passe assez bien.
Avec Texpad , ça marche, mais les caractères non-ANSI ne sont pas
visualisés.
Avec Wordpad, ça marche, si la police Arial-MS-Unicode est installée.

@-salutations

Michel Claveau
Avatar
Guillaume Bouchard
Do Re Mi chel La Si Do wrote:
J'ai oublié de préciser que cela n'est valable que pour les caractères
purement ASCII (<128).


C'est là qu'il y a un binz.
La valeur unicode d'un caractère ne depent de rien...

--
Guillaume.

Avatar
Do Re Mi chel La Si Do
Bonjour !


Je ne comprend pas ton intervention. Car,
- d'une part, je n'ai jamais dit qu'une valeur unicode dépendait de quelque
chose ;
- d'autre part, le message originel demande comment trouver le code d'un
littéral. Or, saisir, ou coller, une chaîne Unicode dépend de beaucoup de
choses. Tente donc de saisir le littéral CJK UNIFIED IDEOGRAPH-4F53
(20307) dans plusieurs éditeurs et environnements...

Au lieu de critiquer à tour de bras, et souvent à côté de la plaque, tu
pourrais simplement répondre aux demandeurs, non ? Cela éviterait de te
donner une image de troll.


@-salutations

Michel Claveau
Avatar
Sébastien Kirche
Le 26 July 2005 à 06:07, Do Re Mi chel La Si Do a formulé :

- d'autre part, le message originel demande comment trouver le code
d'un littéral.


L'OP souhaite peut-être manipuler/trouver des codes du style U+2500 ?
Faut dire que ce serait bien pratique :)

--
Sébastien Kirche

Avatar
Guillaume Bouchard
Do Re Mi chel La Si Do wrote:
Bonjour !


Bonjour.

Je ne comprend pas ton intervention. Car,
- d'une part, je n'ai jamais dit qu'une valeur unicode dépendait de quelque
chose ;


Ha ? :

J'ai oublié de préciser que cela n'est valable que pour les caractères
purement ASCII (<128).
Pour les autres, cela dépend de la locale, de l'encodage du script, de
l'éditeur, des caractères utilisés, du GUI choisi.



- d'autre part, le message originel demande comment trouver le code d'un
littéral.


Pour ma part j'avais plutôt compris que la personne voulait la valeur
"""unicode""" d'un caractère. Donc la valeur unique qui le represente
dans la table unicode.

Or, saisir, ou coller, une chaîne Unicode dépend de beaucoup de
choses. Tente donc de saisir le littéral CJK UNIFIED IDEOGRAPH-4F53
(20307) dans plusieurs éditeurs et environnements...


C'est là que l'on n'est pas d'accord.
Ton joli Kanji à plusieurs valeurs d'encodage en fonction de
l'environnement, je te l'accorde. Mais qu'une seule et une unique valeur
unicode. C'est donc là que ma reponse prend tout son sens. La personne
voulait apparament avoir la valeur unicode du caractère et tu lui repond
que le résultat va dependre de l'environement ?

Au lieu de critiquer à tour de bras,


Tu parles de moi ou c'est une géneralité ? Si jamais tu trouves que je
critique trop j'aimerais bien en discuter (j'aime comprandre mes
defauts) mais en privé, cela sort du cadre de ce thread.

pourrais simplement répondre aux demandeurs, non ?


Dans le cas présent, j'ai cherché la solution pendant un temps certain
et je n'ai rien trouvé, donc j'ai préferé de pas repondre.

La réponse que tu as donnée est apparament bonne, c'est juste ce que tu
disait après qui m'a troublé et qui pouvait donner des idees fausses sur
l'unicode. Il y a tellement de personnes qui sont perdues dans ce
domaine qu'il est inutile d'ajouter des flous suplémentaires.

Salutations,

--
Guillaume.

Avatar
ami
Merci pour réponse et désolé d'avoir déclenché une prise de bec.
Votre réponse m'inspire une autre question aussi futile !

si le code a = 97
pourquoi print u"97" affiche un caractère bizarre et non pas un 'a' ?

Merci encore
Alban
Avatar
Guillaume Bouchard
ami wrote:
si le code a = 97
pourquoi print u"97" affiche un caractère bizarre et non pas un 'a' ?


Car c'est
print u'u0061'
a




Alors là plus personne ne comprend ce qu'il se passe ?

int('61',16)
97




61 en hexadecimal n'est autre que 97 en decimal :)

--
Guillaume.



Avatar
ami
Je ne regrette pas d'avoir posé la question car je n'aurais pas trouvé.
Merci
Ami