Problème d'encodage (je ne suis pas vraiment sur moi-même)
RésoluBenjaminA2mains Messages postés 43 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous.
Comme et pour toujours, j'ai un problème.
J'ai un script python qui travaille avec du texte.
Ce texte peut avoir ces formes :
- こ\Nれ\N以\N上\N何\Nを\N失\Nえ\Nば
- Bonjour,\Ncomment ça va ?
Je dois réussir à virer les "\N" et les remplacer par des sauts de ligne "\n", pour cela, j'utilise "re" avec replace et un encodage utf-8 pour les caractères spéciaux :
text = 'こ\Nれ\N以\N上\N何\Nを\N失\Nえ\Nば'.encode("utf-8") text = text.replace('\\N', '\n')
Mais voilà le problème, python semble confondre les \N avec des \n, du coup j'ai une erreur de décodage dite "unicodeescape".
Je n'ai aucune idée de comment régler le problème. Si quelqu'un a une solution, je suis preneur.
Voici le rapport d'erreur :
Traceback (most recent call last):
File "/data/user/0/ru.iiec.pydroid3/files/accomp_files/iiec_run/iiec_run.py", line 31, in <module>
start(fakepyfile,mainpyfile)
File "/data/user/0/ru.iiec.pydroid3/files/accomp_files/iiec_run/iiec_run.py", line 30, in start
exec(open(mainpyfile).read(), __main__.__dict__)
File "<string>", line 1
text = 'こ\Nれ\N以\N上\N何\Nを\N失\Nえ\Nば'.encode("utf-8")
^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 10-11: malformed \N character escape
- Télé encodage
- Comment connecter chromecast à la télé - Guide
- Plus de tele - Guide
- Télé star gratuit - Télécharger - Vie quotidienne
- Tele sur telephone - Guide
- Télé qui grésille - Forum Matériel & Système
1 réponse
C'est bon j'ai trouvé une solution.
Je lis la ligne en "raw", je remplace de façon binaire les "\N" et je decode ensuite :
Je sais pas pourquoi je n'y ai pas pensé plutôt mdrr
En tout cas si un moment quelqu'un à le même problème par la suite, cette technique fonctionne très bien.
text = r'こ\Nれ\N以\N上\N何\Nを\N失\Nえ\Nば'.encode("utf-8") text = text.replace(b'\N', b'\n').decode()