我今天遇到了一个问题与使用Spring下面的代码:MessageFormat的Pattern.quote()的等价物是什么?
String tabTitle = messageSource.getMessage(tabName, new Object[] {}, tabName, locale)
这是用来在我们的网站(的uPortal一个实例)的顶部得到一系列选项卡中显示的标题。问题是,如果tabName
包含单引号,它会自动从结果中删除。例如What's For Lunch
变为Whats For Lunch
。
我已经找到了原因,这是因为该方法中的第三个参数应该是在java.text.MessageFormat指定的格式。需要2个单引号。
因为我们没有传入格式的任何参数,我可以安全地转义tabName
中的任何特殊字符作为第三个参数传入之前。我可以手动与2个单引号这里代替单引号,但我真的很喜欢的是像Pattern.quote()
,只为MessageFormat
语言,这将保证来处理所有的逃跑。有这样的事吗?
没有,但你可以安全地进行''''''''替换,然后用单引号括住整个东西。即使在单引号文本中也可以正确解释加倍的单引号。 – VGR
谢谢,如果您将此添加为答案,我会接受它。 – xdhmoore