2009-07-23 35 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}] + //克;