3

我有一个将消息发送到 Amazon SQS 队列的 Web 应用程序。Amazon sqs lib 引发“AmazonSQSException”,因为消息包含无效的二进制字符。该消息是从传入的 http 请求中获得的引荐来源网址。这是它的样子:

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%250&url=http% 2Fsearch.php%2FOi8vZG93%2FbmxvYWRz%2FLnppZGR1%2FLmNvbS9k%2Fb3dubG9h%2FZGZpbGUv%2FNTY5MTQ3%2FNi9NeUN1%2FdGVHaXJs%2FZnJpZW5k%2FWmFoaXJh%2FLndtdi5o%2FdG1s%2Fb0%2F > ^FÃ'}úÃ<99>一种«).J

看起来粗体字符是无效字符。有没有一种简单的方法可以过滤掉亚马逊不接受的字符?

以下是亚马逊在消息正文中允许的字符。我不确定应该使用什么正则表达式将无效字符替换为 ''

4

1 回答 1

1

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

例如,Perl:

referer =~ s/[^\x{9}\x{A}\x{D}\x{20}-\x{D7FF}\x{E000}-\x{FFFD}\x{10000}- \x{10FFFF}]+//g;

于 2009-09-24T01:25:29.407 回答