2009-07-23 76 views
2

我有一个将消息发送到Amazon SQS队列的Web应用程序。由于消息包含无效的二进制字符,亚马逊sqs lib抛出'AmazonSQSException' 。该消息是从传入的http请求获取的引用者。这是什么样子:消息体中的Amazon SQS无效二进制字符

http://ads.vrx.adbrite.com/adserver/display_iab_ads.php?sid=1220459&title_color=0000FF&text_color=000000&background_color=FFFFFF&border_color=CCCCCC&url_color=008000&newwin=0&zs=3330305f323530&width=300&height=250&url=http%3A%2F%2Funblockorkutproxy.com%2Fsearch.php%2FOi8vZG93%2FbmxvYWRz%2FLnppZGR1%2FLmNvbS9k%2Fb3dubG9h%2FZGZpbGUv%2FNTY5MTQ3%2FNi9NeUN1%2FdGVHaXJs%2FZnJpZW5k%2FWmFoaXJh%2FLndtdi5o%2FdG1s%2Fb0%2F>^FÃ'}úÃ< 99>一个«).J

貌似字符以粗体是无效字符。有没有简单的方法来筛选出亚马逊不接受的字符字符?

Here是亚马逊在消息正文中允许使用的字符。我不知道我应该用什么正则表达式来替换无效字符''

回答

1

这取决于您使用的编程语言。例如,几种编程语言将允许您直接将您链接的Amazon规范转换为正则表达式,意思是“一个或多个字符不在允许的范围内”。

例如,Perl的:

引荐=〜S/[^ \ X {9} \ X {A} \ X {d} \ X {20} - \ X {D7FF} \ X {E000 } - \ X {FFFD} \ X {10000} - \ X {10FFFF}] + //克;