5

我正在使用 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].

这是不言自明的。

有没有人有一个很好的解决方案来解决这个问题?

4

1 回答 1

9

消息正文中只允许使用这些字符:请参阅SendMessage API 文档

要发送任何二进制内容,您必须对其进行编码,例如使用Base64。然后消息更大,但只包含 ASCII 字符,这比亚马逊要求的还要严格。

我们正在使用这种方法,例如在softwaremill-common库中发送一个序列化的 Java 对象。

于 2013-05-02T09:03:36.783 回答