首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >属性的CNContact编码

属性的CNContact编码
EN

Stack Overflow用户
提问于 2017-09-19 04:14:34
回答 1查看 381关注 0票数 0

我有一个名字为André的V卡字符串,并且我用V卡初始化了一个CNContact

代码语言:javascript
运行
复制
BEGIN:VCARD

VERSION:2.1

N:Foo;André;;;

FN:André Foo

TEL;CELL:00023 4474848

END:VCARD

我使用原始字符串初始化联系人,如下所示:

代码语言:javascript
运行
复制
if let data = string.data(using: .utf8) {
    do {
        let contacts = try CNContactVCardSerialization.contacts(with: data)
        let contact = contacts.first
        return contact

    } catch {
        print("Data is not a VCard")
    }
}

但是当我打印出contact.givenName的原始字符串时,我得到:

André

如何在iOS中获取Contacts框架的正确字符串?

EN

回答 1

Stack Overflow用户

发布于 2017-09-19 04:35:03

您需要在vcard字段中添加一个字符集,默认为ASCII。

代码语言:javascript
运行
复制
BEGIN:VCARD

VERSION:2.1

N;CHARSET=UTF-8:Foo;André;;;

FN;CHARSET=UTF-8:André Foo

TEL;CELL:00023 4474848

END:VCARD

如果您想在vcard中破解这种特定类型的错误,那么您可以手动将字符集注入其中:

代码语言:javascript
运行
复制
let fixed = string.replacingOccurrences(of: "\nN:", with: "\nN;CHARSET=UTF-8:").replacingOccurrences(of: "\nFN:", with: "\nFN;CHARSET=UTF-8:")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46287505

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档