Я получаю сообщения от очереди JMS MQ, которые являются, предположительно, utf-8
закодированный. Однако при чтении использования msgText = ((TextMessage)msg).getText();
Я получаю вопросительные знаки, где нестандартные символы присутствовали. Кажется возможным указать кодирование при использовании a bytemessage
, но я не могу найти способ указать кодирование при чтении вслух TextMessage
. Есть ли способ решить это, или если я нажимаю для bytemessages
?
Мы попытались добавить Dfile.encoding = "UTF-8"
в jvm Websphere
, и мы добавлено
source = new StreamSource(new ByteArrayInputStream(
((TextMessage) msg).getText().getBytes("UTF-8")));
в наш MessageListener
. У нас это сработало, поэтому мы убрали бит Dfile.encoding
, и он по-прежнему работает для нас.
Из-за предпочтительной минимальной конфигурации для Websphere
мы решили оставить это так, также принимая во внимание, что мы можем легче переключить строку UTF-8
с помощью настройки из файла или база данных.