gpt4 book ai didi

ios - CNContact 属性编码

转载 作者:行者123 更新时间:2023-11-28 15:19:24 24 4
gpt4 key购买 nike

我有一个名为 André 的 v-card 字符串,我用 v-card 初始化了一个 CNContact

BEGIN:VCARD

VERSION:2.1

N:Foo;André;;;

FN:André Foo

TEL;CELL:00023 4474848

END:VCARD

我像这样初始化与原始字符串的联系:

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 中获取联系人框架的正确字符串?

最佳答案

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

BEGIN:VCARD

VERSION:2.1

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

FN;CHARSET=UTF-8:André Foo

TEL;CELL:00023 4474848

END:VCARD

如果您想绕过 vcard 中的这种特定类型的错误,那么您可以手动将字符集注入(inject)其中:

let fixed = string.replacingOccurrences(of: "\nN:", with: "\nN;CHARSET=UTF-8:").replacingOccurrences(of: "\nFN:", with: "\nFN;CHARSET=UTF-8:")

关于ios - CNContact 属性编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46287505/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com