can't parse argument number!properties文件如何定义大括号?

FoxMale007 2008-03-30 01:22:27
i18n的资源文件一般都提供了参数定义方式。例如: 你的{0}输入不合法,当前问题是,当我需要直接输出括号时,它却把内部的括号内容当做参数来匹配了例如,我需要使用参数这样输出一个json:

{hello: {0}, paramId: 1}

输出却出错了:can't parse argument number hello: {0}
看起来似乎是将{hello: {0}整个当一个参数编号了,那么我需要将{号转义,但是即使我修改{的Unicode编码为\u007b,还是同样出错,不知道正确该如何书写?有谁解决这样问题过?
...全文
2058 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
l_wenb 2008-03-31
  • 打赏
  • 举报
回复
upupupu!!!
FoxMale007 2008-03-30
  • 打赏
  • 举报
回复
是的,试过unicode转义也没用
kokobox 2008-03-30
  • 打赏
  • 举报
回复
转义的你都试过啦

左大括号 ({) 是\u007B

右大括号 (}) 是\u007D

FoxMale007 2008-03-30
  • 打赏
  • 举报
回复
base64定义在properties文件里?那样修改起来太麻烦,不合适。现在就只有括号字符导致了使用问题。
FoxMale007 2008-03-30
  • 打赏
  • 举报
回复
自己去replaceAll当然可以了,现在想问问本身有没有支持的转义方式
kokobox 2008-03-30
  • 打赏
  • 举报
回复
我给你找了找资料,不是很好解决。呵呵,也许我没找对地方。

一般我对特殊字符转义不了的,我就用base64加密,不过都是对数据量比较小的。

你把参数加密,到时候你再解密看看行的通不

只是个建议
kokobox 2008-03-30
  • 打赏
  • 举报
回复
那是有点麻烦啊

进行加密不可以吗?
FoxMale007 2008-03-30
  • 打赏
  • 举报
回复
我想让这个输出由properties定义文件来取出,而不是直接写。例如,spring的
ContextLoaderListener.getContext().getMessage(key, new Object[]{arg0, arg1}, locale);
现在问题是,如何在properties文件里即定义参数占位符,同时也能正确输出大括号?
kokobox 2008-03-30
  • 打赏
  • 举报
回复
在json中
{hello: {0}, paramId: 1}
这个这样写:
{hello: [0], paramId: 1}

如果还有键值对的话
这样:
{hello: {hello1:0,hello2:1}, paramId: 1}

不知道我说的是不是你想要的


67,543

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧