【发布时间】:2010-01-10 09:39:00
【问题描述】:
我可以使用字符或编码来转义 J2ME 应用程序的 JAD 文件中的自定义属性吗?
示例:此属性中的额外 : 是否会破坏某些设备上的 Jad,是否有一种转义语言(如 HTML 编码)可用于使其成为有效的属性条目?
Custom-Property-1:诺基亚:6150 / X.15
【问题讨论】:
我可以使用字符或编码来转义 J2ME 应用程序的 JAD 文件中的自定义属性吗?
示例:此属性中的额外 : 是否会破坏某些设备上的 Jad,是否有一种转义语言(如 HTML 编码)可用于使其成为有效的属性条目?
Custom-Property-1:诺基亚:6150 / X.15
【问题讨论】:
多余的冒号无关紧要。它只是您财产价值的一部分。
JSR 37 说:
"申请的格式 描述符是一系列行 由属性名称组成 后跟一个冒号,的值 属性和回车符。 空白在之前被忽略,并且 在值之后。”
可能还有其他 JAD 的“陷阱”,具体取决于您的目标设备。最好保持 JAD 很小,在某些情况下不超过 5K,并且没有额外的长行或有延续的行。
有关 JAD 内容的更多信息,请参阅注释 here,特别注意 ISO-8859-1 编码是首选,因为它应该被所有手机支持,并且可以使用 unicode 转义序列(如 \u00A9 = 版权标志)需要时使用。
编辑
JSR 118 包含一个用于解析 JAD 内容的 BNF:
appldesc: *attrline
attrline: attrname “:” [WSP] attrvalue [WSP] newlines
attrname: 1*<any Unicode char except CTLs or separators>
attrvalue: *valuechar | valuechar *(valuechar | WSP) valuechar
valuechar: <any valid Unicode character, excluding CTLS and WSP>
newlines = 1*newline ; allow blank lines to be ignored
newline: CR LF | LF
CR = <Unicode carriage return (U+000D)>
LF = <Unicode linefeed (U+000A)>
WSP: 1*( SP | HT )
SP = <Unicode space (U+0020)>
HT = <Unicode horizontal-tab (U+0009)>
CTL = <Unicode characters
U+0000 - U+001F and U+007F>
separators: “(” | “)” | “<” | “>” | “@” | “,” | “;” |
“:” | “'” | <“> | “/” | “[” | “]” | “?” |
“=” | “{” | “}” | SP | HT
【讨论】: