Удалить недействительные символы из сообщения, отправленного на AWS / Amazon SQS - PullRequest
0 голосов
/ 12 ноября 2019

Контекст: Amazon SQS имеет ограничение на диапазоны символов, которые он будет принимать, когда сообщение передается в аргументе sqsClient.sendMessage(...). (Упоминается здесь ).

Выдержка из вышеуказанной ссылки:

A message can include only XML, JSON, and unformatted text. The following Unicode characters are allowed:

#x9 | #xA | #xD | #x20 to #xD7FF | #xE000 to #xFFFD | #x10000 to #x10FFFF

Any characters not included in this list will be rejected.

Вопрос: На данный момент мы знаем, что в сообщении json, которое отправлено в виде сообщения, присутствуют оскорбительные символы, поэтому мы отфильтровываем их по message_json.replaceAll("\uffff", "");, и это прекрасно работает. (где '\ uffff' - это java-представление символа xFFFF / U + FFFF).

Однако вместо того, чтобы делать это только для символа xFFFF, я хочу сделать это для всех упомянутых выше диапазонов (#x9 | #xA | #xD | #x20 to #xD7FF | #xE000 to #xFFFD | #x10000 to #x10FFFF) но как мне создать предложение, которое может принимать диапазон символов без выполнения замены на каждом?

1 Ответ

0 голосов
/ 12 ноября 2019

На самом деле, ответ был прямо передо мной. По какой-то причине я предположил, что классы символов регулярного выражения не будут принимать эти экранированные символы, такие как [\ufffd-\uffff] внутри message_json.replaceAll("[\ufffd-\uffff]", " ");

Это работает для моего случая.

...