我正在使用Protobuf-net(https://code.google.com/p/protobuf-net/)来序列化我的课程,然后尝试通过亚马逊SQS传输。
当我这样做时,我收到此错误:
Amazon.SQS.AmazonSQSException: Invalid binary character '#xC' was found in the message body, the set of allowed characters is #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF].
这是非常不言自明的。
有没有人有一个很好的解决方案如何让这个工作?
答案 0 :(得分:4)
邮件正文中只允许使用这些字符:请参阅SendMessage API docs。
要发送任何二进制内容,您必须对其进行编码,例如使用Base64。然后消息更大,但只包含ASCII字符,这比亚马逊要求的更严格。
我们正在使用这种方法,例如在softwaremill-common库中发送序列化的Java对象。