hCard 能理解编码吗?

Posted

技术标签:

【中文标题】hCard 能理解编码吗?【英文标题】:Does hCard understand encodings? 【发布时间】:2012-11-15 14:48:49 【问题描述】:

我正在使用 Firefox 的 Operator 扩展。

当我转到http://microformats.org/wiki/hcard(编码为 utf-8)并尝试将 Tantek Çelik(在顶部)的 hCard 导出到 Outlook 时,它以 Tantek Çelik 的形式出现。

有谁知道这是 Outlook、Operator 扩展的问题,还是 hCard 微格式不支持编码?

我尝试过使用 &...;等价,结果相同。

【问题讨论】:

【参考方案1】:

hCard 是一种将 vCard 转码为 html 的方法。 vCard 本身不为其内容指定字符编码,但用于传递 vCard 数据(例如通过 HTTP)的 MIME Content-Type 标头可以指定编码。 vCard 数据必须解码为 Unicode,然后以 HTML 使用的任何编码转换为 HTML。我不熟悉 Operator,但我怀疑它在导入 Outlook 之前没有正确解码/编码 hCard,或者 MicroFormats 网站一开始就没有正确格式化 hCard。

【讨论】:

我相信 vCard(不要与 hCard 微数据格式或 hCard 微数据格式的 vcard 类混淆)可以指定内容的编码,例如FN;ENCODING=QUOTED-PRINTABLE:Foo。微格式嵌入到 html 文档中,因此没有单独的 MIME 类型。 ENCODING=QUOTED-PRINTABLE 是二进制数据编码,而不是字符编码(顺便说一句,QUOTED-PRINTABLE 在 2.1 之后的 vCard 规范不再支持)。有一个很大的不同。 hCard 基于的 vCard 规范 (RFC 2426) 不支持内联字符集编码,并明确表示用于非 ASCII 文本的字符集必须在 vCard 之外指定,例如通过 MIME 标头、HTML 字符集等. vCard 4 (RFC 6350) 消除了这种可能性,要求对非 ASCII 文本使用 UTF-8,并明确禁止外部来源覆盖该要求。 感谢您的参考。

以上是关于hCard 能理解编码吗?的主要内容,如果未能解决你的问题,请参考以下文章

理解字符编码

字符编码彻底理解字符编码

字符编码彻底理解字符编码

字符编码彻底理解字符编码(转)

从零到一编码实现Redis分布式锁

深入理解python字符编码(包含2.x与3.x)