[Python] sub2po erreur encodage

Fermé
la quiche Messages postés 260 Date d'inscription jeudi 27 mars 2008 Statut Membre Dernière intervention 11 novembre 2020 - 21 juin 2012 à 19:07
la quiche Messages postés 260 Date d'inscription jeudi 27 mars 2008 Statut Membre Dernière intervention 11 novembre 2020 - 25 juin 2012 à 16:42
Bonjour,


Bonjour,

C'est pas trop le bon forum, mais je sais pas trop où poser la question. J'essaie d'utiliser sub2po pour convertir des fichiers srt en fichier po. (http://docs.translatehouse.org/projects/translate-toolkit/en/latest/commands/sub2po.html?id=toolkit/sub2po le programme est en python).
Mon srt d'origine est en ISO-8859-1. Je l'ai converti en UTF-8 avec iconv. Il n'y pas de BOM.
Je le convertis en po avec sub2po. Je traduis mes sous-titres (anglais vers français).
Quand je veux reconvertir mon po en srt, j'ai une erreur :
'charmap' codec can't encode characters in position 104-105: character maps to <undefined>

Traceback:
po2sub: warning: Error processing: input essai.po, output essai.srt, template sous-titres anglais.srt: Traceback (most recent call last):

  File "/usr/lib/python2.7/dist-packages/translate/misc/optrecurse.py", line 528, in recursiveprocess
    fulltemplatepath)

  File "/usr/lib/python2.7/dist-packages/translate/misc/optrecurse.py", line 583, in processfile
    **passthroughoptions):

  File "/usr/lib/python2.7/dist-packages/translate/convert/po2sub.py", line 60, in convertsub
    outputstring = convertor.convertstore(includefuzzy)

  File "/usr/lib/python2.7/dist-packages/translate/convert/po2sub.py", line 51, in convertstore
    return str(self.templatestore)

  File "/usr/lib/python2.7/dist-packages/translate/storage/subtitles.py", line 104, in __str__
    return output.getvalue().encode(self._subtitlefile.encoding)

  File "/usr/lib/python2.7/encodings/iso8859_2.py", line 12, in encode
    return codecs.charmap_encode(input,errors,encoding_table)

UnicodeEncodeError: 'charmap' codec can't encode characters in position 104-105: character maps to <undefined>


C'est le premier ù qui le fait tousser.

Je ne comprend pas du tout l'erreur, et surtout ce qu'il faut que je corrige. J'ai fait le tour de tous les problèmes possibles (j'ai même vérifié que les accents passent en console). Le code source de iso8859_2.py est ici : http://svn.python.org/projects/python/trunk/Lib/encodings/iso8859_2.py


A voir également:

1 réponse

la quiche Messages postés 260 Date d'inscription jeudi 27 mars 2008 Statut Membre Dernière intervention 11 novembre 2020 27
25 juin 2012 à 16:42
Je me réponds à moi-même, mais si jamais quelqu'un passe par là et qu'il a le même problème...
C'est le fait que le sous-titrage d'origine soit en iso-8859-1 qui pose problème. Il faut :
-ôter toutes les lettres "bizarres" du sous-titre original (iconv est silencieux sur les erreurs), remplacer à par a etc...
- ensuite convertir en UTF-8
-faire sub2po etc...
- editer le fichier po (en UTF-8)
- po2sub

Et ça roule.
0