2016-06-06 3 views
-1

Я получаю эту ошибку «UnicodeDecodeError: кодек ascii не может декодировать байт 0xc3 в позиции 17: порядковый номер не в диапазоне (128)», когда я пытаюсь объединить этот изображение "La Pocatière.png".python 2.7 wand: UnicodeDecodeError: (Ошибка в get_font_metrics)

Python 2.7.11 
    bg_img = Image(filename='C:/Pocatière.png') 
    bg_img.resize(1200,628) 
    bg_img.composite('C:/test.png', left=0, top=0) 

, когда я печатать, я могу видеть правильный Юникода:

bg_img 
u'La Pocati\xe8re.png' 
>>> print bg_img 
La Pocatière.png 

Не знаю, как я могу обойти эту проблему?


Ответ: После того, как делать много исследований и обсуждения с моим коллегой мы смогли решить эту проблему, установив: text_encoding = «UTF-8» По какой-то причине палочки не удалось установить его автоматически

+0

Является ли это python v2 или v3? как и в версии 2, вы можете быть лучше с вызовом 'Image (filename = u'C: /Pocatière.png ')' вы также можете заметить это в рабочем примере, где указано 'u'La Pocati \ xe8re.png'' – Dilettant

+0

Ссылка, предоставленная @ l'L'l, определенно полезна ;-), но я подозреваю, что строковый литерал как параметр функции здесь является проблемой. Надеюсь, OP скажет ... – Dilettant

+0

@ Dilettant, так как в коде есть строки * unicode и 'print bg_img', я был бы удивлен, если бы это был python 3. Или я пропущу что-то очевидное? –

ответ

2

Является ли это python v2 или v3?

В случае, если это Python версии 2 (который я думаю, что это), то вы могли бы быть лучше не с вызовом

Image(filename=u'C:/Pocatière.png') 

вы также можете заметить это в рабочем образце, где говорится

u'La Pocati\xe8re.png' 
+0

благодарит за советом. Я получаю путь к файлу как переменную. Как бы я это сделал в этом случае. 'bg_url = background_img_path +"/"+ background_img.decode ('utf-8')' 'bg_img = Изображение (filename = bg_url)' 'bg_img.resize (1200,628)' 'bg_img.composite (fg_url, left = 0, top = 0) ' – mrzoogle

+0

Если я удаляю« .decode ('utf-8') из кода, я становлюсь ниже ошибки: BlobError: невозможно открыть изображение 'C:/La Pocati re.png ': Нет такого файла или directory @ error/blob.c/OpenBlob/2702 – mrzoogle

+0

Является ли это python v2 или v3? Было бы полезно знать. В вашем примере (выше комментария) для python v2 вы бы использовали 'bg_url' строку байтов (информация потеряна) из-за того, что не используется метод os.path, но вводят ''/"' вместо u' "/" 'right? Тогда параметр filename снова получит байтовую строку вместо ожидаемой строки unicode (я думаю). 'background_img_path' и' background_img' также являются строками unicode, почему бы не использовать: 'bg_url = background_img_path + u"/"+ background_img' или тому подобное? – Dilettant