如何在vCard 4.0值中转义新行?

时间:2013-11-23 01:06:20

标签: escaping newline vcard carddav

我发现vCard 4.0 RFC 6350新行转义规则存在一些不一致。 Section 3.4说:

  

值中的NEWLINE(U + 000A)字符必须由两个编码   字符:BACKSLASH后跟'n'(U + 006E)或   'N'(U + 004E)。

我认为我不仅要替换LF(U + 000A)字符,还要替换CRLF序列。这就是vCard 3.0 RFC 2426和the difference from vCard 2.1中的情况。

我应该根据vCard 4.0规范替换CRLF序列还是仅替换LF字符?

2 个答案:

答案 0 :(得分:0)

这仅适用于ESCAPE序列!也就是说,当你想在属性值中添加新行时,你必须写“\ n”。当谈到vcard-code本身的换行符时,RFC声明你应该使用CRLF(0x0D0A),所以你不应该替换你的vcard文件中的任何“真正的”换行符。

答案 1 :(得分:-1)

在vCard 4.0中,换行符转义序列为\n。如果本地操作系统使用CRLF作为其换行序列,则CR和LF字符都将替换为单个\n

解析vCard时,\n应替换为本地操作系统的换行序列。