2015-07-30 4 views
2

Я не могу отправлять сообщения с акцентированными символами для SQS в python с помощью AWS SDK (boto).(python/boto sqs) UnicodeDecodeError: кодек ascii не может декодировать байт 0xc3 в позиции 5: порядковый не в диапазоне (128)

Версия

Python: 2.7.6 боты: 2.20.1

КОДА

#!/usr/bin/env python 
    # -*- coding: utf-8 -*- 

import boto.sqs 
from boto.sqs.message import RawMessage 

    # print boto.Version 
sqs_conn = boto.sqs.connect_to_region(
'my_region', 
aws_access_key_id='my_kye', 
aws_secret_access_key='my_secret_ky') 
queue = sqs_conn.get_queue('my_queue') 
queue.set_message_class(RawMessage) 

msg = RawMessage() 

body = '1 café, 2 cafés, 3 cafés ...' 
msg.set_body(body) 
queue.write(msg) 

ответ

1

Одно из решений:

import sys 
reload(sys)       
sys.setdefaultencoding('utf-8') 

Полного код:

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 

import boto.sqs 
from boto.sqs.message import RawMessage 
import sys        # <== added this line 

reload(sys)        # <== added this line 
sys.setdefaultencoding('utf-8')   # <== added this line 

# print boto.Version 
sqs_conn = boto.sqs.connect_to_region(
    'my_region', 
    aws_access_key_id='my_kye', 
    aws_secret_access_key='my_secret_ky') 
queue = sqs_conn.get_queue('my_queue') 
queue.set_message_class(RawMessage) 

msg = RawMessage() 

body = '1 café, 2 cafés, 3 cafés ...' 
msg.set_body(body) 
queue.write(msg) 

https://pythonadventures.wordpress.com/2012/03/29/ascii-codec-cant-encode-character/#comment-4672

Смежные вопросы

 Смежные вопросы