Quarkus Camel - Bot Telegram - Проблема с кодомJAVA

Программисты JAVA общаются здесь
Anonymous
 Quarkus Camel - Bot Telegram - Проблема с кодом

Сообщение Anonymous »

У меня есть проблема с кодированием сообщения, которое будет отправлено в Telegram Bot.
Im Использование проекта Quarkus /Java с Apache Camel
Вход такой: < /p>
localhost: 8084 /enviartelegram? id = 11111111111 & mensagem = mas olha só que belezinha < /p>
и код такой: < /p>
@Override
public void configure() {
rest("/enviarTelegram")
.get()
.param().name("id").type(RestParamType.query).endParam()
.param().name("mensagem").type(RestParamType.query).endParam()
.to("direct:send-message-to-user");
from("direct:send-message-to-user")
.log("Recebendo solicitação para enviar mensagem para ID: ${header.id}")
.choice()
.when(header("id").isNotNull()
)
.log("Sending message to user with ID: ${header.id}")
.setHeader("chatId", simple("${header.id}"))
.setBody(simple("${header.mensagem}"))

.toD("telegram:bots?authorizationToken=" + token + "&chatId=${header.id}")
.convertBodyTo(String.class)

.otherwise()
.log("ERRO: Nenhum ID foi recebido!")
.stop()
.end();
< /code>
Попробуйте установить кодирование головки: < /p>
.setHeader(Exchange.CONTENT_ENCODING, simple("charset=UTF-8"))

.setHeader("Content-Type", simple("application/json; charset=UTF-8"))
< /code>
Попробуйте обработать перед установкой: < /p>
.process(exchange -> {
String mensagem = exchange.getIn().getBody(String.class);
if (mensagem != null) {
exchange.getIn().setBody(new String(mensagem.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8));
}
})
< /Code>
Я получаю мессенджер таким: < /p>
Но посмотрите? Что Belezinha < /p>
ожидает этого:
, но посмотрите, какая красота < /p>

Подробнее здесь: https://stackoverflow.com/questions/794 ... ith-encode

Вернуться в «JAVA»