我的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
发送的变音符号?
提前谢谢!
答案 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")