Проблема с кодировкой символов в сообщениях Amazon SQS - PullRequest
0 голосов
/ 17 февраля 2011

У меня довольно загадочная проблема с Amazon SQS и Zend (1.11.2).Я отправляю сообщение в очередь, которую я настроил, с помощью snip-it, которое выглядит следующим образом:

$sqs->send($queueURL, "opt1=foo opt2=bar");

Сообщение поступает в приложение на дальней стороне и выглядит как:

"opt1%3Dfoo+opt2%3Dbar"

Принимающее приложение написано на Java с использованием библиотеки com.xerox.amazonws.sqs2 и в настоящее время находится в производстве.

В более старом модуле php, который использовал Tarzan под Drupal, был похожий код отправкиэто работало просто отлично.Я искал высоко и низко и прочитал документацию по Zend, Amazon и библиотеке Java, и я застрял.

Кодировка строки понятна, но я не распознаю используемый метод.Дальнейшие тесты показывают, что одинарные кавычки, угловые скобки и т. Д. Также экранируются как шестнадцатеричные.

Есть идеи?

Кен

1 Ответ

0 голосов
/ 21 марта 2011

Typica (com.xerox.amazonaws) имеет опцию в кодировке *1003*, которая использует Base64 для кодирования сообщений. Это включено по умолчанию.

В общем, мы обнаружили, что кодирование сообщений с использованием Base64 менее проблематично, чем кодирование URL / процентов при использовании SQS.

Я бы Base64 текст сообщения на PHP, записать его в очередь, и Typica должна прекрасно декодировать с использованием конфигурации по умолчанию.

...