簡體   English   中英

Amazon SQS:無法使用python / boto發送消息

[英]Amazon SQS: can't send messages using python/boto

我遇到以下問題:當我使用帶有固定字符串的SQSConnection.send_message方法作為參數(沒有重音字符)時,它按預期工作。 但是當我得到消息的主體(使用get_messages)並嘗試將其再次發送到同一隊列時,我收到此錯誤:

UnicodeEncodeError:'ascii'編解碼器不能編碼位置38中的字符u'\\ xea':序數不在范圍內(128)

這些消息是直接從Amazon Web Console編寫的,並且有一些“;” 字符和一些重音,如“õ”和“ã”。 我該怎么辦? 我已按照此處的建議使用set_message_class(RawMessage)

將python BOTO與AWS SQS一起使用,獲取無意義的字符

但它只適用於接收消息。 我正在使用Ubuntu 12.04,從存儲庫安裝python-boto(我認為它的版本為2.22,但不知道如何檢查)。

謝謝!!

send_message只能處理字節字符串(str類)。 您從SQS收到的是Unicode字符串(unicode類)。 您需要通過調用encode('utf-8')將Unicode字符串轉換為字節字符串。

如果您混合使用了字符串類型,則可能需要將Unicode字符串有條件地編碼為字節字符串。

    if type(message_body) is unicode:
        message_content = message_body.encode('utf-8')
    else:
        message_content = message_body

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM