【问题标题】:How do I escape new line in vCard 4.0 values?如何在 vCard 4.0 值中转义新行?
【发布时间】:2016-03-28 08:36:15
【问题描述】:

我发现 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 字符?

【问题讨论】:

    标签: escaping newline vcf-vcard carddav


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-31
        相关资源
        最近更新 更多