Je récupère un chaine de caractère d'une base de donnée mysql. certain
caratères sont accentué et codé de la sorte : \xe8 pour è \xe9 pour é etc
Il semble que cela soit de l'encodage iso-8859-1.
Comment faire pour qu'il sorte bien sur mon terminal, ou dans un fichier
texte.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jonathan Barnoud
Bonjour,
j'utilise Python 2.3.5 sur linux
Je récupère un chaine de caractère d'une base de donnée mysql. certain caratères sont accentué et codé de la sorte : xe8 pour è xe9 pour é etc Il semble que cela soit de l'encodage iso-8859-1.
Comment faire pour qu'il sorte bien sur mon terminal, ou dans un fichier texte.
Merci.
À vue de nez je parierais plutôt pour de l'UTF-8. D'autant plus que ces chaines viennent de MySQL.
Pour s'en convaincre, tape : print u"xe8xe9"
Vous devriez obtenir èé ! Chouette !
Bon, maintenant, dans la mesure où j'écris mes scripts directement en utf-8 et que mon terminal est en utf-8 je ne sais plus comment convertir les chaines utf-8 en autre chose mais il y a une page sur le wiki.
Jonathan Barnoud
PS : J'y pense : dans la mesure où vous êtes sous linux il est probable que votre éditeur soit en utf-8, il serais intéressant pour vous de savoir quelles sont vos locales systeme et quel encodage votre éditeur utilise.
Bonjour,
j'utilise Python 2.3.5 sur linux
Je récupère un chaine de caractère d'une base de donnée mysql. certain
caratères sont accentué et codé de la sorte : xe8 pour è xe9 pour é etc
Il semble que cela soit de l'encodage iso-8859-1.
Comment faire pour qu'il sorte bien sur mon terminal, ou dans un fichier
texte.
Merci.
À vue de nez je parierais plutôt pour de l'UTF-8.
D'autant plus que ces chaines viennent de MySQL.
Pour s'en convaincre, tape :
print u"xe8xe9"
Vous devriez obtenir èé ! Chouette !
Bon, maintenant, dans la mesure où j'écris mes scripts directement en
utf-8 et que mon terminal est en utf-8 je ne sais plus comment convertir
les chaines utf-8 en autre chose mais il y a une page sur le wiki.
Jonathan Barnoud
PS : J'y pense : dans la mesure où vous êtes sous linux il est probable
que votre éditeur soit en utf-8, il serais intéressant pour vous de
savoir quelles sont vos locales systeme et quel encodage votre éditeur
utilise.
Je récupère un chaine de caractère d'une base de donnée mysql. certain caratères sont accentué et codé de la sorte : xe8 pour è xe9 pour é etc Il semble que cela soit de l'encodage iso-8859-1.
Comment faire pour qu'il sorte bien sur mon terminal, ou dans un fichier texte.
Merci.
À vue de nez je parierais plutôt pour de l'UTF-8. D'autant plus que ces chaines viennent de MySQL.
Pour s'en convaincre, tape : print u"xe8xe9"
Vous devriez obtenir èé ! Chouette !
Bon, maintenant, dans la mesure où j'écris mes scripts directement en utf-8 et que mon terminal est en utf-8 je ne sais plus comment convertir les chaines utf-8 en autre chose mais il y a une page sur le wiki.
Jonathan Barnoud
PS : J'y pense : dans la mesure où vous êtes sous linux il est probable que votre éditeur soit en utf-8, il serais intéressant pour vous de savoir quelles sont vos locales systeme et quel encodage votre éditeur utilise.
Eric Brunel
On Fri, 04 Nov 2005 07:36:19 +0100, Jonathan Barnoud wrote:
Bonjour,
j'utilise Python 2.3.5 sur linux
Je récupère un chaine de caractère d'une base de donnée mysql. certain caratères sont accentué et codé de la sorte : xe8 pour è xe9 pour é etc Il semble que cela soit de l'encodage iso-8859-1.
Comment faire pour qu'il sorte bien sur mon terminal, ou dans un fichier texte.
Merci.
À vue de nez je parierais plutôt pour de l'UTF-8.
Non: en UTF-8, tous les caractères non-ASCII sont codés sur au moins 2 octets, donc aucune chance que ce soit ça.
Pour s'en convaincre, tape : print u"xe8xe9"
Non plus: si tu tapes ça dans un terminal, ça va (sans doute - je ne suis pas sûr d'avoir bien compris) se baser sur ton encodage par défaut. Si cet encodage est ASCII, voilà ce que ça fait:
print u'éè' Traceback (most recent call last):
File "<stdin>", line 1, in ? UnicodeError: ASCII encoding error: ordinal not in range(128)
Vous devriez obtenir èé ! Chouette !
Ca, ça prouve seulement que l'encodage par défaut contient les caractères é et è, pas que c'est de l'UTF-8...
Bon, maintenant, dans la mesure où j'écris mes scripts directement en utf-8 et que mon terminal est en utf-8 je ne sais plus comment convertir les chaines utf-8 en autre chose mais il y a une page sur le wiki.
On fait comme ça (en Python 2.1 en tous cas):
s = unicode('xe8 xe9', 'iso8859-1') s.encode('utf-8') 'xc3xa8 xc3xa9'
Jonathan Barnoud
PS : J'y pense : dans la mesure où vous êtes sous linux il est probable que votre éditeur soit en utf-8, il serais intéressant pour vous de savoir quelles sont vos locales systeme et quel encodage votre éditeur utilise.
La plupart des éditeurs que je connais sous Linux n'utilisent pas l'encodage UTF-8 par défaut, mais plutôt le latin-1. Tu es sûr de ton coup, là? -- python -c "print ''.join([chr(154 - ord(c)) for c in 'U(17zX(%,5.zmz5(17;8(%,5.Z65'*9--56l7+-'])"
On Fri, 04 Nov 2005 07:36:19 +0100, Jonathan Barnoud <jonathan@barnoud.net> wrote:
Bonjour,
j'utilise Python 2.3.5 sur linux
Je récupère un chaine de caractère d'une base de donnée mysql. certain
caratères sont accentué et codé de la sorte : xe8 pour è xe9 pour é etc
Il semble que cela soit de l'encodage iso-8859-1.
Comment faire pour qu'il sorte bien sur mon terminal, ou dans un fichier
texte.
Merci.
À vue de nez je parierais plutôt pour de l'UTF-8.
Non: en UTF-8, tous les caractères non-ASCII sont codés sur au moins 2 octets, donc aucune chance que ce soit ça.
Pour s'en convaincre, tape :
print u"xe8xe9"
Non plus: si tu tapes ça dans un terminal, ça va (sans doute - je ne suis pas sûr d'avoir bien compris) se baser sur ton encodage par défaut. Si cet encodage est ASCII, voilà ce que ça fait:
print u'éè'
Traceback (most recent call last):
File "<stdin>", line 1, in ?
UnicodeError: ASCII encoding error: ordinal not in range(128)
Vous devriez obtenir èé ! Chouette !
Ca, ça prouve seulement que l'encodage par défaut contient les caractères é et è, pas que c'est de l'UTF-8...
Bon, maintenant, dans la mesure où j'écris mes scripts directement en
utf-8 et que mon terminal est en utf-8 je ne sais plus comment convertir
les chaines utf-8 en autre chose mais il y a une page sur le wiki.
On fait comme ça (en Python 2.1 en tous cas):
s = unicode('xe8 xe9', 'iso8859-1')
s.encode('utf-8')
'xc3xa8 xc3xa9'
Jonathan Barnoud
PS : J'y pense : dans la mesure où vous êtes sous linux il est probable
que votre éditeur soit en utf-8, il serais intéressant pour vous de
savoir quelles sont vos locales systeme et quel encodage votre éditeur
utilise.
La plupart des éditeurs que je connais sous Linux n'utilisent pas l'encodage UTF-8 par défaut, mais plutôt le latin-1. Tu es sûr de ton coup, là?
--
python -c "print ''.join([chr(154 - ord(c)) for c in 'U(17zX(%,5.zmz5(17;8(%,5.Z65'*9--56l7+-'])"
On Fri, 04 Nov 2005 07:36:19 +0100, Jonathan Barnoud wrote:
Bonjour,
j'utilise Python 2.3.5 sur linux
Je récupère un chaine de caractère d'une base de donnée mysql. certain caratères sont accentué et codé de la sorte : xe8 pour è xe9 pour é etc Il semble que cela soit de l'encodage iso-8859-1.
Comment faire pour qu'il sorte bien sur mon terminal, ou dans un fichier texte.
Merci.
À vue de nez je parierais plutôt pour de l'UTF-8.
Non: en UTF-8, tous les caractères non-ASCII sont codés sur au moins 2 octets, donc aucune chance que ce soit ça.
Pour s'en convaincre, tape : print u"xe8xe9"
Non plus: si tu tapes ça dans un terminal, ça va (sans doute - je ne suis pas sûr d'avoir bien compris) se baser sur ton encodage par défaut. Si cet encodage est ASCII, voilà ce que ça fait:
print u'éè' Traceback (most recent call last):
File "<stdin>", line 1, in ? UnicodeError: ASCII encoding error: ordinal not in range(128)
Vous devriez obtenir èé ! Chouette !
Ca, ça prouve seulement que l'encodage par défaut contient les caractères é et è, pas que c'est de l'UTF-8...
Bon, maintenant, dans la mesure où j'écris mes scripts directement en utf-8 et que mon terminal est en utf-8 je ne sais plus comment convertir les chaines utf-8 en autre chose mais il y a une page sur le wiki.
On fait comme ça (en Python 2.1 en tous cas):
s = unicode('xe8 xe9', 'iso8859-1') s.encode('utf-8') 'xc3xa8 xc3xa9'
Jonathan Barnoud
PS : J'y pense : dans la mesure où vous êtes sous linux il est probable que votre éditeur soit en utf-8, il serais intéressant pour vous de savoir quelles sont vos locales systeme et quel encodage votre éditeur utilise.
La plupart des éditeurs que je connais sous Linux n'utilisent pas l'encodage UTF-8 par défaut, mais plutôt le latin-1. Tu es sûr de ton coup, là? -- python -c "print ''.join([chr(154 - ord(c)) for c in 'U(17zX(%,5.zmz5(17;8(%,5.Z65'*9--56l7+-'])"
Encolpe Degoute
Bonjour,
j'utilise Python 2.3.5 sur linux
Je récupère un chaine de caractère d'une base de donnée mysql. certain caratères sont accentué et codé de la sorte : xe8 pour è xe9 pour é etc Il semble que cela soit de l'encodage iso-8859-1.
Comment faire pour qu'il sorte bien sur mon terminal, ou dans un fichier texte.
Pour un terminal il faut connaître l'encodage du dis terminal, pour le fichier, cela dépend de l'application qui lit :)
Pour la pratique: chaine.decode('utf8').encode('iso8859-15') ça marche avec tout les encodages d'entrée et de sortie.
Cordialement, -- Encolpe DEGOUTE http://encolpe.degoute.free.fr/ Logiciels libres, hockey sur glace et autres activités cérébrales
Bonjour,
j'utilise Python 2.3.5 sur linux
Je récupère un chaine de caractère d'une base de donnée mysql. certain
caratères sont accentué et codé de la sorte : xe8 pour è xe9 pour é etc
Il semble que cela soit de l'encodage iso-8859-1.
Comment faire pour qu'il sorte bien sur mon terminal, ou dans un fichier
texte.
Pour un terminal il faut connaître l'encodage du dis terminal, pour le
fichier, cela dépend de l'application qui lit :)
Pour la pratique: chaine.decode('utf8').encode('iso8859-15')
ça marche avec tout les encodages d'entrée et de sortie.
Cordialement,
--
Encolpe DEGOUTE
http://encolpe.degoute.free.fr/
Logiciels libres, hockey sur glace et autres activités cérébrales
Je récupère un chaine de caractère d'une base de donnée mysql. certain caratères sont accentué et codé de la sorte : xe8 pour è xe9 pour é etc Il semble que cela soit de l'encodage iso-8859-1.
Comment faire pour qu'il sorte bien sur mon terminal, ou dans un fichier texte.
Pour un terminal il faut connaître l'encodage du dis terminal, pour le fichier, cela dépend de l'application qui lit :)
Pour la pratique: chaine.decode('utf8').encode('iso8859-15') ça marche avec tout les encodages d'entrée et de sortie.
Cordialement, -- Encolpe DEGOUTE http://encolpe.degoute.free.fr/ Logiciels libres, hockey sur glace et autres activités cérébrales
Jonathan Barnoud
PS : J'y pense : dans la mesure où vous êtes sous linux il est probable que votre éditeur soit en utf-8, il serais intéressant pour vous de savoir quelles sont vos locales systeme et quel encodage votre éditeur utilise.
La plupart des éditeurs que je connais sous Linux n'utilisent pas l'encodage UTF-8 par défaut, mais plutôt le latin-1. Tu es sûr de ton coup, là?
Dans les distribution grand public récente c'est en tout cas souvent le cas : mon ubuntu est par défaut en utf-8 de même que toutes les applications qui sont installée dessus. Il en allait de même avec ma Fedora.
Maintenant, il ne me semble pas que ce soit le cas pour une gentoo (pas par défaut en tout cas) et je ne sais pas pour les autres distributions...
PS : J'y pense : dans la mesure où vous êtes sous linux il est probable
que votre éditeur soit en utf-8, il serais intéressant pour vous de
savoir quelles sont vos locales systeme et quel encodage votre éditeur
utilise.
La plupart des éditeurs que je connais sous Linux n'utilisent pas
l'encodage UTF-8 par défaut, mais plutôt le latin-1. Tu es sûr de ton
coup, là?
Dans les distribution grand public récente c'est en tout cas souvent le
cas : mon ubuntu est par défaut en utf-8 de même que toutes les
applications qui sont installée dessus. Il en allait de même avec ma Fedora.
Maintenant, il ne me semble pas que ce soit le cas pour une gentoo (pas
par défaut en tout cas) et je ne sais pas pour les autres distributions...
PS : J'y pense : dans la mesure où vous êtes sous linux il est probable que votre éditeur soit en utf-8, il serais intéressant pour vous de savoir quelles sont vos locales systeme et quel encodage votre éditeur utilise.
La plupart des éditeurs que je connais sous Linux n'utilisent pas l'encodage UTF-8 par défaut, mais plutôt le latin-1. Tu es sûr de ton coup, là?
Dans les distribution grand public récente c'est en tout cas souvent le cas : mon ubuntu est par défaut en utf-8 de même que toutes les applications qui sont installée dessus. Il en allait de même avec ma Fedora.
Maintenant, il ne me semble pas que ce soit le cas pour une gentoo (pas par défaut en tout cas) et je ne sais pas pour les autres distributions...
Je récupère un chaine de caractère d'une base de donnée mysql. certain caratères sont accentué et codé de la sorte : xe8 pour è xe9 pour é etc Il semble que cela soit de l'encodage iso-8859-1.
Comment faire pour qu'il sorte bien sur mon terminal, ou dans un fichier texte.
Merci. Il existe un module PrintISO qui permet l'affichage directe de caractère
accentué. Recherche sur google.com ;)
Bonjour,
j'utilise Python 2.3.5 sur linux
Je récupère un chaine de caractère d'une base de donnée mysql. certain
caratères sont accentué et codé de la sorte : xe8 pour è xe9 pour é etc
Il semble que cela soit de l'encodage iso-8859-1.
Comment faire pour qu'il sorte bien sur mon terminal, ou dans un fichier
texte.
Merci.
Il existe un module PrintISO qui permet l'affichage directe de caractère
Je récupère un chaine de caractère d'une base de donnée mysql. certain caratères sont accentué et codé de la sorte : xe8 pour è xe9 pour é etc Il semble que cela soit de l'encodage iso-8859-1.
Comment faire pour qu'il sorte bien sur mon terminal, ou dans un fichier texte.
Merci. Il existe un module PrintISO qui permet l'affichage directe de caractère