Python/unicode: écrire de gauche à droite/de droite à gauche [résolu]

Python/unicode: écrire de gauche à droite/de droite à gauche [résolu] - Python - Programmation

Marsh Posté le 07-12-2005 à 18:46:16    

Bonsoir à tous et à toutes,
 
J'ai un fichier en utf-8 qui contient du texte écrit dans une multitude de langues, certaines s'écrivant de gauche à droite (ex : français), d'autre de droite à gauche (ex : hébreu). Le fichier a été créé avec Yudit, un 'traitement de texte' qui affiche très correctement ces caractères sans se tromper de sens.
 
Quand je lis mon fichier en Python et que j'affiche mon texte dans une console, je me rends compte qu'il écrit tous les caractères de gauche à droite sans distinguer les deux sens d'écriture.
 

fic = codecs.open("fic.txt","r","utf-8" )
for l in fic:
    print l
fic.close()


 
Avez-vous des info's pour résoudre ce problème ? Est-ce qu'il y a un moyen de détecter manuellement que des plages de caractères exigent une écriture de droite à gauche ?
 
NB : pour ceux qui ne comprennent pas le problème, imaginez le problème inverse : que dans le fichier il soit écrit "BONJOUR" et que le programme écrive d'abord le B à droite de l'écran, puis le O à gauche, puis le N encore à gauche : on obtiendrait RUOJNOB.


Message édité par suizokukan le 07-12-2005 à 22:03:53

---------------
rule #1 : trust the python
Reply

Marsh Posté le 07-12-2005 à 18:46:16   

Reply

Marsh Posté le 07-12-2005 à 18:48:52    

Il me semble que la faute est imputable à la console dans ce cas


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
Reply

Marsh Posté le 07-12-2005 à 18:53:57    

> 0x90 : peut-être, même si je vais le vérifier, par acquis de conscience.
 
Et en général ? Comment savoir si un caractère unicode exige une écriture sinistrogyre(vers la gauche) ou dextrogyre ?


Message édité par suizokukan le 07-12-2005 à 18:54:45

---------------
rule #1 : trust the python
Reply

Marsh Posté le 07-12-2005 à 18:57:59    

y'a des caractères unicodes dans le flux qui servent à spécifier ca il me semble.


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
Reply

Marsh Posté le 07-12-2005 à 18:59:56    

>0x90 : tu as raison, c'est bien la consonne qui ne sait pas interpréter correctement mes caractères, qui sont envoyés dans le bon ordre !
 
0x90 : ok, c'est donc à mon programme de détecter ces caractères dans le flux. Je reviens dès que j'ai trouvé quelque-chose.


Message édité par suizokukan le 07-12-2005 à 19:02:03

---------------
rule #1 : trust the python
Reply

Marsh Posté le 07-12-2005 à 19:09:14    

google "python bidirectional unicode"
 
Ya des trucs dans le module "unicodedata"
 
unicodedata.bidirectional, entre autres


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 07-12-2005 à 19:20:15    

> Masklinn : impeccable, ceci répond exactement à mon problème. Merci à toi ainsi qu'à 0x90.  :jap:  
 
Je réécris le programme dès que j'ai un instant et je le poste sous peu.


---------------
rule #1 : trust the python
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed