2010-01-25 3 views
4

Я пытаюсь вставить символы, такие как ä, á, ó, í, â и т. Д. В теле сообщения Amazon SQS. Но эти символы преобразуются в некоторые другие символы в SQS (например, ä). Есть ли способ решить эту проблему.Проблема кодирования символов Amazon SQS

Благодаря

ответ

2

Спасибо за ответы. Я думаю, что лучший способ преодолеть эту проблему - сохранить тело сообщения в AmazonSQS в формате HTML-ENTITIES. Поэтому перед сохранением сообщения я кодирую его в формате HTML_ENTITIES, используя php-метод mb_convert_encoding(string $str, string $to_encoding [,mixed $from_encoding]).

Если у кого-то есть лучшее решение, не стесняйтесь добавлять комментарии.

Благодаря

+0

Используйте [Base64] (http://php.net/manual/en/function.base64-encode.php) –

1

Это, вероятно, из-за проблем кодирования символов в коде. Очень рекомендуемая статья по этой теме - Joel's The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!).

Похоже, что ваши символы кодируются UTF-8 где-то, и соответствующая операция декодирования UTF-8 выполняется не так, как вы ожидаете.

+0

Я так не думаю, потому что, когда я повторяю строку сообщения, это выглядит хорошо. Символы меняются только тогда, когда они идут в AmazonSQS. Спасибо – kobra

+0

Когда вы 'echo' данные на HTML-страницу, ваш * браузер *, вероятно, расшифровывает кодированные данные UTF-8 и правильно отображает данные, как вы ожидаете. При работе с закодированными данными (как это обычно бывает в наши дни) всегда происходит много слоев перевода, и обычно требуется некоторое исследование, чтобы выяснить, что происходит на самом деле. –

0

я увидел, что это была решена в onlinemq, но до сих пор существуют в SQS

Смежные вопросы