Специальные символы Spring Boot и FCM

У меня проблемы с отправкой сообщений, включая специальные символы (например, «łżźć») в FCM. Когда я отправляю их через консоль разработчика, мобильные приложения отображают их правильно. Но когда я отправляю их с нашего сервера, они заменяются на «?????».

Ниже показано, как я отправляю само сообщение на сервер FCM:

@Async
CompletableFuture<String> send(HttpEntity<String> entity, String accessToken) throws HttpClientErrorException {
    RestTemplate restTemplate = new RestTemplate();

    ArrayList<ClientHttpRequestInterceptor> interceptors = new ArrayList<>();
    interceptors.add(new HeaderRequestInterceptor("Authorization", "Bearer " + accessToken));
    interceptors.add(new HeaderRequestInterceptor("Content-Type", "application/json;charset=UTF-8"));
    restTemplate.setInterceptors(interceptors);

    String firebaseResponse = restTemplate.postForObject(FCM_API, entity, String.class);
    return CompletableFuture.completedFuture(firebaseResponse);
}

Я хотел бы избежать преобразования сообщения, например. строку base64, если это возможно (это был один из ответов на другие вопросы).

Вы пытались добавить конвертер строковых сообщений UTF-8 в соответствии с этот вопрос?

Karol Dowbecki 21.03.2019 14:51

@KarolDowbecki .... Я сейчас чувствую себя таким глупым - это идеальный ответ! Не думал об этом (пытался с кодировкой самой строки безрезультатно)

Jakub Wisniewski 21.03.2019 14:57

Не кодируйте полезные нагрузки при работе с библиотеками Spring, это работа для ConversionService

Karol Dowbecki 21.03.2019 15:02
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
239
0

Другие вопросы по теме