JAVA MessageFormat.Format,带有变音符号(ä/ö/ü)

时间:2020-03-27 08:43:49

标签: java spring-boot diacritics messageformat

我的Java后端中的MessageFormat.format有问题。我有一个邮件发送功能,可以将内容从我的前端(通过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 个答案:

答案 0 :(得分:1)

考虑以下关于我认为MessageFormat.format与您的问题无关的最小说明:

import java.text.MessageFormat;

public class Application {

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

这将在我的机器上显示输出ü

因此,我认为您的E-Mail函数会将Umlauts当作HTML实体转义。

答案 1 :(得分:0)

您可以将字节转换为任意类型的字符串,然后转换为UTF-8。

new String(out.toByteArray(), "UTF8")
相关问题