我在Amazon SQS和Zend(1.11.2)中遇到了一個相當令人困惑的問題。我將消息發送到隊列中,我已經設置了剪斷,它看起來像這樣:亞馬遜SQS消息中的消息字符編碼問題
$sqs->send($queueURL, "opt1=foo opt2=bar");
的消息出現在該應用程序較遠的一側,並被視爲:
"opt1%3Dfoo+opt2%3Dbar"
接收應用程序使用com.xerox.amazonws.sqs2庫以Java編寫,現在正在生產中。
在Drupal中使用Tarzan的舊版php模塊中有類似的發送代碼,它工作得很好。我已經搜索了很高,並閱讀Zend,亞馬遜和Java庫的文檔,我被卡住了。
字符串的編碼是可以理解的,但我不認識正在使用的方法。進一步的測試表明,單引號,尖括號等也會以十六進制格式轉義。
任何想法?
肯
更多信息。 Zend正在編碼出站郵件和urldecoding入站郵件。從我所看到的Java Typica庫不會執行urldecode中看來。它似乎也是Tarzan PHP庫也沒有進行ulrencoding。我必須忽略互操作性如何與這些庫一起工作。 – Ken 2011-02-18 15:52:48