目前,我们的应用程序支持i18n。 我们为每个Locale都有一个属性文件。 对于英语,我们能够成功显示属性文件中定义的占位符。
当我们将应用程序中的区域设置/语言设置从英语更改为法语时,我们无法替换占位符。 占位符 - 字符串日期 - 这是从控制器成功返回的,但仍然无法在UI页面上替换。
这是因为对于法语语言环境和语言环境而言,JSP中指定的键的完整值未正确呈现。因此,占位符不会被替换。
我们面临的特殊问题是智能报价(d'essai) 此字符的Unicode:U + 00B4
我们尝试使用Meta& amp ;;在JSP页面中放置UTF-8编码。页面指令,但仍然没有解决问题。
非常感谢任何帮助。
<fmt:message bundle="${myBundle}" key="myKey"><fmt:param value="${nextDateInString}"/></fmt:message>
Votrepériodes'essaigratuit prend fin le {0}
正如您所看到的,{0}未被动态替换为法语区域设置,而对于英语,它正在按预期工作。
尝试使用StringEscapeUtils.escapeJavascript(myMessageFromProperties) 也没帮忙
答案 0 :(得分:0)
单引号是MessageFormat-Strings中的特殊字符,用于引述文本,然后不对其进行处理。请参见Java API MessageFormat。
您需要两个单引号将其转义并显示一个单引号。