JAVA MessageFormat.Format с умлаутами (ä / ö / ü) - PullRequest
0 голосов
/ 27 марта 2020

У меня проблема с MessageFormat.format в моем Java бэкэнде. У меня есть функция почтовой рассылки, которая отправляет письма с контентом из моего веб-интерфейса (через API через API) некоторым пользователям.

String text =
    MessageFormat.format(
        "Dear Report Owner\n\nA new access request:\n\nFrom: {0} {1} ({2})\nFor: {3} \nReason: {4}\n\nPlease process the access request and inform {0} {1} accordingly.\n\nBest regards,\nDev-Team",
        accessTokenUser.getGivenName(),
        accessTokenUser.getFamilyName(),
        accessTokenUser.getEmail(),
        processedRoleContent,
        processedLinkContent);

Возможно, что некоторые значения (например, processedRoleContent) содержат, например, ü, но в отправленном электронном письме оно выглядит как Ü.

Как настроить MessageFormat.format что это посылает умлаутс?

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 27 марта 2020

Рассмотрим следующую минимальную демонстрацию того, почему я думаю, MessageFormat.format не имеет ничего общего с вашей проблемой:

import java.text.MessageFormat;

public class Application {

    public static void main(String[] args) {
        System.out.println(MessageFormat.format("{0}", "ü"));
    }
}

, что приводит к выводу на моем компьютере ü.

Итак, я думаю, что ваша функция электронной почты избегает умлаутов как HTML сущностей.

0 голосов
/ 27 марта 2020

Вы можете преобразовать байт, затем UTF-8 для любого типа строки.

new String(out.toByteArray(), "UTF8")
...