vCard 4.0 RFC 6350表示属性参数值中的换行符必须编码为\ n(至少对于ADR属性的LABEL参数):
The property can also include a "LABEL" parameter to present a
delivery address label for the address. Its value is a plain-text
string representing the formatted address. Newlines are encoded
as \n, as they are for property values.
ADR;GEO="geo:12.3457,78.910";LABEL="Mr. John Q. Public, Esq.\n
Mail Drop: TNE QB\n123 Main Street\nAny Town, CA 91921-1234\n
U.S.A.":;;123 Main Street;Any Town;CA;91921-1234;U.S.A.
然而,'Parameter Value Encoding in iCalendar and vCard' RFC 6868更新了vCard 4.0 RFC 6350,其中包含:
formatted text line breaks are encoded into ^n (U+005E, U+006E)
GEO;X-ADDRESS="Pittsburgh Pirates^n115 Federal St^nPitt
sburgh, PA 15212":geo:40.446816,-80.00566
being used
如何将vCard 4.0参数值中的换行符编码为\ n或^ n?
答案 0 :(得分:0)
看看实际的语法:
param-value = *SAFE-CHAR / DQUOTE *QSAFE-CHAR DQUOTE
vCard / iCalendar(遗憾的是)不支持属性属性值中的泛型转义。如RFC 6868中所述:
未定义用于属性文本值的\ -escaping机制 用于参数值
(这是RFC 6868的重点)。
LABEL很特别,明确规定支持\ n:
该属性还可以包含一个“LABEL”参数来表示 地址的送货地址标签。它的价值是纯文本 表示格式化地址的字符串。换行符编码为 \ n,因为它们是属性值。
这仅适用于LABEL。
回答您的问题:“如何将vCard 4.0参数值中的换行符编码为\ n或^ n?”
首先要查看参数的值是否以特殊方式指定,例如LABEL。如果是,请按参数描述对其进行编码。如果不是,请通过^。
进行编码